關于用SUMPRODUCT取代SUM數(shù)組公式的想法
對于1個明細數(shù)據(jù)(見例),我們需要求該班男、女生各科成績大于各科平均分的人數(shù),這個問題不難,大家一般都會用sum()來多條件求值就行了(注:數(shù)組公式):
=SUM(($C$3:$C$428=$K3)*(D$3:D$428>=AVERAGE(D$3:D$428)))
確實這是解決問題的一種方法,但往往對于初用數(shù)組公式的朋友常常會遺忘(或不知道)用(Ctrl+shift+Enter)組合鍵來結束編輯(論壇中常常有類似的提問)。
出于這個原因,我想到能否用SUMPRODUCT()函數(shù)來代替常用SUM()多條件求和公式呢?結果答案是肯定的。
把上面的公式稍做修改,請見:
=SUMProduct(($C$3:$C$428=$K3)*1,(D$3:D$428>=AVERAGE(D$3:D$428))*1)
而且直接用Enter來結束,函數(shù)仍然可以正確計算結果。
原因在于:SUMPRODUCT()函數(shù)本身就支持數(shù)組間運算(相同尺寸的數(shù)組相乘后再加總),因此我們毋須用數(shù)組公式組合鍵來結束。
另:提醒大家一點,如果大家試圖將公式改為:
=SUMProduct(($C$3:$C$428=$K3),(D$3:D$428>=AVERAGE(D$3:D$428)))
公式不能得出正確結果。
如果多個條件這樣并列寫入,系統(tǒng)默認是用AND關系(即相乘)來運算,但是SUMPRODUCT不支持邏輯值數(shù)組常量間相乘(也算是小遺憾吧:)),因此請一定要將邏輯值轉換成數(shù)值才行。
大家可能覺得麻煩,因此我建議使用縮寫公式,實際上是將多個數(shù)組參數(shù)變?yōu)橐粋數(shù)組,也就可以避免不同維數(shù)數(shù)組間相乘而帶來的錯誤麻煩了。
=SUMProduct(($C$3:$C$428=$K3)*(D$3:D$428>=AVERAGE(D$3:D$428)))
同理:我們如果需要求出所有男生中總分大于平均總分的所有總分,我們也可以用公式:
=SUMPRODUCT(($C$3:$C$428=$K13)*(I$3:I$428>=AVERAGE(I$3:I$428)),I$3:I$428)
如果數(shù)組尺寸(即行列數(shù))相同,建議使用這種方法,如果直接相乘出現(xiàn)錯誤,可能是I列出現(xiàn)非數(shù)值字符,用逗號分隔后,系統(tǒng)可以自動忽略非數(shù)值型數(shù)據(jù)的。
(責任編輯:admin)
- ·[摘錄]Excel亂碼修復的幾點方法與經(jīng)驗
- ·創(chuàng)建一個溫度計式的Excel圖表
- ·為選擇的區(qū)域添加邊框
- ·如何在Excel中使用文件對話框
- ·用快捷鍵實現(xiàn)相對引用和絕對引用快速來
- ·【技巧】Excel控制特定單元格輸入文本
- ·Excel技巧集錦
- ·Excel技巧大匯總
- ·在word中輸出數(shù)學符號
- ·Excel表格中的序號操作技巧
- ·關于用SUMPRODUCT取代SUM數(shù)組公式的想
- ·EXCEL減肥一得
- ·查找+格式刷的妙用
- ·輕松調整Excel奇數(shù)行行高
- ·開學后,在按年級整理各班以電子形式上
- ·讓Excel中人名顯示更美觀的技巧