HI,大家好,我是星光。
有這樣一個Excel問題。如下圖所示,A列是單位,D列是獎金,現在需要統計單位為"說不好"和"不好說"的獎金總額。
你會怎麼寫函式公式呢?
有的朋友用SUMIF:
兩個SUMIF函式 ▼
=SUMIF(A:A,"不好說",D:D)+SUMIF(A:A,"說不好",D:D)
先計算出單位為"不好說"的獎金總額,再計算出單位為"說不好"的獎金總額,兩者相加即為結果。
這公式返回的結果是正確的,但過程不太理想。
如果更多個條件怎麼辦呢?繼續累加使用SUMIF?
打個響指,你不妨參考參考下面這種解法。
=SUM(SUMIF(A:A,{"不好說","說不好"},D:D))
……
解釋下公式的意思▼
{"不好說","說不好"}是SUMIF函式的第2引數,表示查詢條件。{}表示常量陣列,裡面包含兩個元素:"不好說"和"說不好"。SUMIF分別統計這兩者的獎金總額,返回一個記憶體陣列:
{198,176}
最後再使用SUM函式統計求和即可。
同樣的問題,除了使用SUMIF函式之外,還可以用SUM/SUMIFS/SUMPRODUT等函式。
❶ SUMIFS函式:
=SUM(SUMIFS(D:D,A:A,{"不好說","說不好"}))
❷ SUM函式:
陣列公式按陣列三鍵結束輸入...▼
=SUM((A2:A19={"不好說","說不好"})*D2:D19)
❸ SUMPRODUCT函式(1)
不用三陣列三鍵直接輸入...▼
=SUMPRODUCT((A2:A19={"不好說","說不好"})*D2:D19)
❹ SUMPRODUCT函式(2):
=SUMPRODUCT((ISNUMBER(FIND(A2:A19,"不好說,說不好"))*D2:D19))
❺ FILTER函式:
目前需要Excel365版...▼
=SUM(FILTER(D2:D19,ISNUMBER(FIND(A2:A19,"不好說,說不好"))))
❻ MMLUT函式:
=SUM(MMULT(TRANSPOSE(D2:D19),1*(A2:A19={"不好說","說不好"})))
……
沒了,今天給大家分享的內容就這樣,打完收工,咱們下期再見。
圖文製作:看見星光
原載:Excel星球