大家新年好~
新的一年,新的一天,努力奮鬥,繼續學習!
一個小需求
初入職場的時候,寫過一個公式,統計多人數銷售情況,如下圖所示,如何求趙雲、張飛以及曹操三人的銷量?
典型的滿足條件的單元格求和,利用sumif函數可以搞定。
Sumif(條件區域,判斷條件,求和區域),根據sumif函數語法,我編寫了下面這樣的公式:
=SUMIF(A2:A15,"趙雲",B2:B15)+SUMIF(A2:A15,"張飛",B2:B15)+SUMIF(A2:A15,"曹操",B2:B15)
我的邏輯是先求趙雲的銷量,再求張飛的銷量,最後求曹操的銷量,接著將三者求和,完成數據統計。
公式被前輩看到了,說邏輯沒問題,但過於冗長,如果要求十幾個人的銷量,這樣寫法其實不是要被累死?
我一聽,好像是這個道理。
那有更簡單的方法嗎?
前輩表示,改下條件就好:
=SUM(SUMIF(A2:A15,{"趙雲","張飛","曹操"},B2:B15))
眼前一亮,對比起來公式是要簡短了很多,而且要添加新的條件的話,只需要在花括號裡面添加名單即可,不用多個sumif函數連續相加。
公式解讀
這個公式初看跟常規的sumif函數沒啥區別,唯一的區別在於參數二,判斷條件,這裡的判斷條件用一個花括號括起來,裡面各個條件,用逗號隔開,這樣的表示方法叫數組;
也就是說 {"趙雲","張飛","曹操"} 是一個數組,傳入到參數二 中去,sumif函數返回的也是一個數組,為別為{"趙雲求和","張飛求和","曹操求和"},結果應該是{39,42,30},最後在外層嵌套一個sum函數,將這個數組在進行求和,sum({39,42,30})返回最終的結果。
需要注意的一點是,雖然參數2為數組,sumif函數也返回一個數組,但如果只輸入sumif函數,不添加外部sum函數,結果只會返回參數二的第一個條件,即只返回「趙雲」的銷量數據。
擴展延伸
除了sumif函數支持這種寫法之外,常用的函數中,sumifs與sumproduct函數也支持數組參數。
如下圖,對sumifs函數某個條件運用數組,也可以分返回正確的結果。
需要注意的是,sumifs函數可以多條件判斷,但是數組輸入法只支持一個條件,不可多條件輸入,否則無法返回正確的結果。
Sumproduct函數如下圖所示:
不同於前兩者的是,外層函數不用嵌套sum函數,那是因為Sumproduct函數本身就支持數組運算。
小結
數組參數化,sumif函數高級技巧分享給大家,希望有所幫助。
喜歡的小夥伴歡迎轉發關注,每天分享數據小技巧。