首頁>職場>

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星球

13
  • 工作沒回報,還要繼續嗎?
  • 面試官:差一點六斤是什麼字呢?小夥支支吾吾的回答讓人捧腹大笑