Excel 函數(shù)學(xué)習(xí)02-SUMIF(S)實戰(zhàn)技巧用法大全

01, 單條件求和
02, 排除某個條件求和
03, “并且”關(guān)系求和
04, “或”關(guān)系求和
05, 月份計算求和
06, 隔列按行計算求和
07, 大于平均值求和
08, 前N名求和
09, 排除錯誤值求和
10, 去除小計求和
11, 包含某個關(guān)鍵字求和
12, 開頭為指定字符求和
13, 結(jié)尾為指定字符求和
14, 按字符長度求和
15, 忽略通配符求和
16, 多列數(shù)據(jù)計算求和
17, 準(zhǔn)確的隔列數(shù)據(jù)計算求和
18, 多表計算求和

NO.1 單條件求和


公式:

=SUMIF(A:A,E2,C:C)

這是工作中最常見的問題之一,也是SUMIF最基礎(chǔ)的用法,攤手,沒啥好解釋的。

NO.2 排除某個條件求和

如下圖所示,需要在F2單元格計算地區(qū)為非“華中”的銷售總額。



公式:

=SUMIF(A:A,"<>華中",C:C)

公式使用運算符不等號<>,排除掉“華中”地區(qū),以此作為SUMIF的求和條件。除了不等于號,SUMIF同樣支持>、>=、<、<=等運算符號。

比如計算C列金額大于等于60的總金額,公式如下:

=SUMIF(C:C,">=60")

NO.3 “并且”關(guān)系求和

如下圖所示,需要在G列計算同時滿足E列地區(qū)和F列項目的銷售額總計,公式如下:


NO.4,“或”關(guān)系的求和

如下圖所示,需要在F2單元格計算項目為“看見星光”和“Excel”的銷售金額總和,也就是“或”關(guān)系的求和問題。

公式如下:

=SUM(SUMIF(B:B,{"諸葛亮","項羽"},C:C))

公式使用常量數(shù)組構(gòu)建了多個值作為SUMIF的求和條件:{"諸葛亮","項羽"}。

SUMIF會依次對每個條件進(jìn)行運算,于是得到多個求和結(jié)果,比如此例計算結(jié)果為:{142,138}。

最后使用SUM函數(shù)對其返回的多個結(jié)果進(jìn)行求和即可。

NO.5,按指定月份求和

如下圖所示,需要在F2單元格計算月份為8月份的銷售金額總和。



我們上一章講過,SUMIF(S)條件區(qū)域和求和區(qū)域均不支持除了單元格引用以外的任何形式,比如數(shù)組和常量,因此本例中無法使用以下函數(shù)公式計算結(jié)果。

=SUMIF(MONTH(A:A),8,C:C)

正確的計算公式如下:

=SUMIFS(C:C,A:A,">=2019-8-1",A:A,"<=2019-8-31")

公式將一個貌似單條件求和問題演變成了多條件求和問題,準(zhǔn)確描述出8月份的起始日和截至日,使公式計算A列月份即大于等于8月1號(">=2019-8-1"),又小于等于8月31號的銷售金額之和("<=2019-8-31"),實際也就是了計算8月份銷售金額的總和。

NO.6,隔列按行計算求和

如下圖所示,需要在H列和I列分別計算每一行記錄中出庫和入庫的數(shù)量總和。


SUMIF函數(shù)公式如下:

=SUMIF(B2:G2,I2,B3:$G3)

SUMIF不但能按列條件求和,也能按行條件求和。公式將絕對引用狀態(tài)下的標(biāo)題行B2:G2作為條件區(qū)域,求和區(qū)域采用了列絕對引用行相對引用的混合引用,比如B3:G3,當(dāng)公式向下向右復(fù)制,列標(biāo)不變,向下復(fù)制時行號改變,比如B4:G4,B5:G5……以此達(dá)到正確引用求和區(qū)域的目的。

NO.7,大于平均值求和

如下圖所示,需要在F2單元格計算C列銷售額大于平均銷售額的總和。



公式如下

=SUMIF(C:C,">"&AVERAGE(C2:C11))

公式使用AVERAGE函數(shù)計算出C列金額的平均值,以此作為SUMIF的求和條件。SUMIF忽略第3參數(shù)求和區(qū)域,按我們上一章所說,會自動將條件區(qū)域視為求和區(qū)域。

NO.8,前N名數(shù)據(jù)求和

如下圖所示,需要在F2單元格計算C列銷售額前三名總和。



公式如下:

=SUMIF(C:C,">="&LARGE(C2:C11,3))

公式使用LARGE函數(shù)計算出C列金額第三項最大值,以大于等于該值作為SUMIF函數(shù)的求和條件,也就是計算前三名最大值的總和。


如果需要計算后三名最小值的總和,公式如下:

=SUMIF(C:C,"<="&SMALL(C2:C11,3))

NO.9,排除錯誤值求和

如下圖所示,需要在C12單元格計算C列的金額總和。


由于C列含有錯誤值,如果直接使用SUM函數(shù),計算結(jié)果會返回錯誤值。

通常使用SUMIF函數(shù)如下:

=SUMIF(C2:C11,"<9E307")

同樣的問題,如果我們需要計算地區(qū)為“華東”,項目為“透視表”的金額總和,如果使用以下公式會返回錯誤值,原因我們上一章講過了。

=SUMIFS(C:C,A:A,"華東",B:B,"蕭何",)

同樣的套路,使用以下公式即可獲取正常結(jié)果。

=SUMIFS(C:C,A:A,"華東",B:B,"蕭何",C:C,"<9e307")

NO.10,去除小計求和

如下圖所示,需要在C15單元格計算C列金額總和。


這樣的總值計算方法有兩種,一種是只計算小計行的匯總值,一種是只計算明細(xì)值之和。

正常情況下我們可以使用公式:

=SUMIF(A2:A14,"小計",C2:C14)

或者公式:

=SUM(C2:C14)/2

但問題是,如果有人小計行沒填寫,如本示例情況,以上兩個公式都將返回錯誤結(jié)果。

穩(wěn)妥的公式還是下面這一條,用C2:C14的全部金額減去小計行金額即為正確的總計金額:

=SUM(C2:C14)-SUMIF(A2:A14,"小計",C2:C14)


NO.11,包含某個關(guān)鍵字求和

如下圖所示,需要在F2單元計算項目包含關(guān)鍵字"EXCEL"的金額總和。



公式如下:

=SUMIF(B:B,"韓信",C:C)

通配符星號可以代表0到任意多個字符,"韓信",也就可以代表包含“韓信”的字符串。以此作為SUMIF的查詢條件,即可獲取包含"韓信"關(guān)鍵字的項目金額總和。

NO.12,開頭為指定字符求和

如下圖所示,需要在F2單元計算項目以"P"開頭的總金額。


公式如下:

=SUMIF(B:B,"h*",C:C)

公式同樣使用了通配符星號,"h*"也就是以"h"開頭的任意字符串。

NO.13,結(jié)尾為指定字符求和

如下圖所示,需要在F2單元計算項目以"表"結(jié)尾的總金額。


公式如下:

=SUMIF(B:B,"*代",C:C)

公式同樣使用了通配符星號,"*代"也就是以"表"結(jié)尾的任意字符串。

NO.14,按字符長度求和

如下圖所示,需要在F2單元計算項目長度為4個字符的總金額。

屏幕快照 2020-05-03 上午12.34.34.png

公式如下:

=SUMIF(B:B,"??",C:C)

在Excel中,問號作為通配符,只代表一個字符,"??",2個問號也就代表了字符串長度為2,以此作為SUMIF的求和條件,即可獲取項目長度為2個字符的對應(yīng)總金額。

NO.15,忽略通配符求和

就像那個人一樣,通配符有被需要的時候,也有被嫌棄的時候。當(dāng)單元格中出現(xiàn)通配符時,我們就希望不要把它當(dāng)通配符看待,而只是視為一個正常的值,此時我們可以將相應(yīng)的通配符,替換為“~通配符”。

如下圖所示,需要在E2單元格計算產(chǎn)品編號為123*456的銷售數(shù)量。

如果使用以下公式,將會返回錯誤結(jié)果。

=SUMIF(A:A,D2,B:B)

SUMIF函數(shù)的查詢條件是D2,D2單元格的值是"123*456",由于通配符星號的存在,系統(tǒng)誤認(rèn)為我們是要計算123開頭,456結(jié)尾的產(chǎn)品編碼數(shù)據(jù),也就會將示例圖片中全部產(chǎn)品的銷量作為計算結(jié)果。



使用以下函數(shù)公式可以獲取正確結(jié)果。

=SUMIF(A:A,SUBSTITUTE(D2,"","~"),B:B)

NO.16,多列數(shù)據(jù)計算求和

如下圖所示,A:F列是數(shù)據(jù)范圍,需要在I列計算H列相關(guān)項目的銷售額總和。



公式如下:

=SUMIF(A:E,H2,B:F)

SUMIF的查找區(qū)域是多列區(qū)域A:E列,依照我們上一章講述過的SUMIF運算規(guī)則,實際運算查找區(qū)域為A1:F11,同樣依照我們上一章講述過的SUMIF運算規(guī)則,求和區(qū)域B:F也好,B:B也好,B:J也好,在實際運算中都并不重要,重要的僅僅只是指定正確的首個求和單元格。

也許將公式改寫為以下形式更有助于你對本條函數(shù)的理解:

=SUMIF(A:E,H2,B1)

如我們上一章所講,SUMIF函數(shù)通過查找區(qū)域的首個單元格A1和求和區(qū)域的首個單元格B1,構(gòu)建查找區(qū)域和求和區(qū)域的位置關(guān)聯(lián)關(guān)系,并按照多退少補的原則對求和區(qū)域自行增減。

本例中查找區(qū)域和求和區(qū)域的關(guān)聯(lián)關(guān)系也就是A1對應(yīng)B1,A2對你應(yīng)B2,B1對應(yīng)C1,B2對應(yīng)C2,C1對應(yīng)D1,C2對應(yīng)D2依次類推……

也就是說這條SUMIF函數(shù)實際上并不是隔列查詢,比如分別查找A2:A11、C2:C11、E2:E11列的姓名是否等于“劉備”,而是查找A2:E11單元格范圍內(nèi)每一個單元格(包含金額列)是否等于“劉備”,并對符合查找條件的右一單元格的值進(jìn)行求和。

如下圖所示,A/C/E列是原始得分,B/D/F列是修正得分,現(xiàn)需計算原始得分大于60分的,對應(yīng)修正得分總和……



想一下,公式:

=SUMIF(A:E,">60",B:F)

能得出正確的計算結(jié)果嗎?

當(dāng)然是不能。

如果解決這樣的問題呢?

NO.17,準(zhǔn)確的隔列數(shù)據(jù)計算求和


當(dāng)碰到上一題所示的問題時,我們通常使用以下公式:

=SUM(SUMIF(OFFSET(A:A,,{0,2,4}),">60",OFFSET(A:A,,{1,3,5})))

公式使用OFFSET函數(shù)構(gòu)建條件區(qū)域和求和區(qū)域。OFFSET(A:A,,0)也就是A列向右偏移0列,還是A列。OFFSET(A:A,,2),A列向右走兩列,也就是C列……OFFSET(A:A,,{0,2,4}),也就是由A列C列E列組成的多維區(qū)域,需要說明的是,并不是每一個函數(shù)都支持多維引用,SUMIF函數(shù)屬于少數(shù)支持者之一。

SUMIF函數(shù)計算出每一個維度符合條件的求和結(jié)果,最后由SUM函數(shù)匯總求和。

NO.18,多表計算求和

如下圖所示,有三張工作表,名稱依次為華南、華中、華東。



現(xiàn)在需要以下表的B列計算A列相應(yīng)產(chǎn)品在華南、華中、華東三表的金額總和。


由于三張分表項目的排列順序并不一致,也就無法使用我們在SUM函數(shù)篇所介紹的SUM多表求和套路。

正確公式如下:

=SUM(SUMIF(INDIRECT({"華南","華中","華東"}&"!a:a"),A2,INDIRECT({"華南","華中","華東"}&"!b:b")))

公式有些類似于示例17,不同的是示例17使用OFFSET搭建同一張工作表不同的單元格引用,而本例則是由INDIRECT函數(shù)搭建不同的工作表相同的單元格引用。

INDIRECT是引用類函數(shù),我們以后會講到,這里只是簡單的介紹兩句,先留個印象,不久的將來再見面時好說話些。

學(xué)習(xí)INDIRECT只需要記住以下兩點。

其一,它的參數(shù)是一個地址。這個地址可以由常量組成,比如INDIRECT("A1"),雙引號包括起來的"A1"是一個文本常量。此外該地址也可以由變量產(chǎn)生,比如INDIRECT(A1),A1沒有使用雙引號包起來,也就是指的A1單元格,此時INDIRECT所使用的地址是A1單元格保存的值。

其二,INDIRECT返回的是單元格的引用,而不是單元格的值。比如,假設(shè)A1單元格存在值“李逵”,公式=INDIRECT("A1"),返回的是A1單元格的引用,單元格引用包含了A1單元格本身的多種屬性,比如地址、高度、寬度等,而值屬性只是其中之一,被Excel默認(rèn)為主要屬性,并顯示出來,也就是我們看到的"李逵”。

正是因為INDIRECT函數(shù)所返回的結(jié)果是單元格引用,所以它才可以作為SUMIF條件與求和區(qū)域的嵌套函數(shù)進(jìn)行使用。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容