實(shí)戰(zhàn):從條件求和到多條件統(tǒng)計的完整指南)
提起SUMPRODUCTExcel圈子里一直把它稱為“條件求和的王者”但這個函數(shù)也勸退了不少人——語法看起來繞、網(wǎng)上的教程七零八落真正能把它用明白的其實(shí)不多。我早年在電商公司做數(shù)據(jù)分析每天面對十幾萬行的銷售流水各種按區(qū)域、按渠道、按產(chǎn)品類型、按時間窗口的匯總需求輪著來先后用過SUMIF、SUMIFS、透視表最后踩了一圈坑才發(fā)現(xiàn)SUMPRODUCT才是那個最靈活、也最值得沉下心研究的函數(shù)。今天這篇就把它的底層邏輯、條件求和的常見寫法、進(jìn)階用法和排查思路一次講清楚。無論你剛接觸Excel還是已經(jīng)有一定的函數(shù)基礎(chǔ)只要平時需要做數(shù)據(jù)匯總這篇文章都能幫你省下大量試錯時間。1. 先搞懂SUMPRODUCT的底層邏輯它到底在算什么1.1 語法拆解一個函數(shù)干兩件事先看官方語法SUMPRODUCT(array1, [array2], [array3], ...)翻譯成大白話就是“把多個數(shù)組里對應(yīng)位置的元素先相乘再把所有乘積加起來”。舉個例子A1到A3分別是1、2、3B1到B3分別是10、20、30那么SUMPRODUCT(A1:A3, B1:B3)的結(jié)果就是1*10 2*20 3*30 140。放在業(yè)務(wù)場景里更好理解A列是銷售數(shù)量B列是單價SUMPRODUCT返回的就是所有訂單的銷售額總和。一個函數(shù)同時干了“相乘”和“相加”兩件事所以叫SUMPRODUCTProduct是乘積Sum是求和。很多人第一次看到這里就開始犯迷糊它明明叫“乘積之和”為什么還能做條件求和關(guān)鍵就在于“條件”可以被轉(zhuǎn)換成由1和0組成的數(shù)組。這后面會反復(fù)提到是理解這個函數(shù)的核心。1.2 數(shù)組思維條件是怎么變成數(shù)字的在Excel里當(dāng)你寫B(tài)2:B1000華東這樣的比較表達(dá)式時它并不會直接返回一個TRUE而是返回一個由TRUE和FALSE組成的數(shù)組。比如B列有1000行這個表達(dá)式就生成1000個邏輯值符合條件的那幾行是TRUE其余是FALSE。接下來的操作才是精髓在四則運(yùn)算里Excel會自動把TRUE當(dāng)成1FALSE當(dāng)成0。所以(B2:B1000華東)*G2:G1000的意思就是每一行先判斷B列是不是“華東”如果是就拿G列的值乘1原值保留如果不是就拿G列的值乘0結(jié)果清零。最后SUMPRODUCT把這些值加起來得到的就是“華東區(qū)域的銷售額之和”。正是這種“邏輯值參與乘法自動轉(zhuǎn)1/0”的機(jī)制讓SUMPRODUCT能在一個公式里完成多條件篩選和求和。這也是為什么它不需要按CtrlShiftEnter三鍵確認(rèn)——它天生就是數(shù)組運(yùn)算函數(shù)。后面所有復(fù)雜寫法本質(zhì)上都離不開這個“TRUE變1、FALSE變0”的規(guī)則。2. 條件求和四大實(shí)戰(zhàn)玩法從簡單到復(fù)雜2.1 單條件求和一條公式干掉SUMIF先給一個最基礎(chǔ)的例子。假設(shè)數(shù)據(jù)表結(jié)構(gòu)是A列日期、B列區(qū)域、C列渠道、D列產(chǎn)品型號、E列數(shù)量、F列單價、G列銷售額?,F(xiàn)在要統(tǒng)計“華東區(qū)域的總銷售額”公式可以寫成SUMPRODUCT((B2:B1000華東)*G2:G1000)這段公式的邏輯非常清晰(B2:B1000華東)生成邏輯數(shù)組與G列銷售額數(shù)組相乘TRUE對應(yīng)的行保留G列數(shù)值FALSE對應(yīng)的行變成0最后全部加起來。我見過有人用--雙負(fù)號寫法SUMPRODUCT(--(B2:B1000華東), G2:G1000)。這種寫法本質(zhì)上也是把邏輯值轉(zhuǎn)為1/0但和直接乘法的區(qū)別是直接乘法沒有逗號分隔所有條件都在一個參數(shù)里雙負(fù)號寫法用逗號分隔多個參數(shù)可讀性更高也便于在后面疊加其他條件。兩種寫法結(jié)果一樣看個人習(xí)慣。我個人更喜歡直接乘因?yàn)楣蕉獭懫饋砜於野选皸l件就是乘數(shù)”的思路體現(xiàn)得更直觀。有一點(diǎn)必須提醒條件區(qū)域和求和區(qū)域的行數(shù)必須一致。你要是寫(B2:B1000華東)*G1:G999直接返回#VALUE!因?yàn)閮蓚€數(shù)組尺寸對不上。這個問題在后面的章節(jié)還會展開講。2.2 多條件求和SUMPRODUCT的看家本領(lǐng)接著上面的例子現(xiàn)在要統(tǒng)計“華東區(qū)域、電商渠道、產(chǎn)品型號為A100”的總銷售額。公式變成SUMPRODUCT((B2:B1000華東)*(C2:C1000電商)*(D2:D1000A100)*G2:G1000)這個公式的本質(zhì)是多個條件數(shù)組串行相乘。三個條件全部為TRUE的行最后的乘積是1*1*1*G列值 G列值被保留任何一個條件不滿足都會讓這個乘積中出現(xiàn)0整行結(jié)果變?yōu)?。等同于“AND”邏輯。對比一下SUMIFS的寫法SUMIFS(G2:G1000, B2:B1000, 華東, C2:C1000, 電商, D2:D1000, A100)看起來SUMIFS更簡潔但它有一個很大的限制條件區(qū)域必須是單元格區(qū)域引用不能直接寫表達(dá)式。也就是說SUMIFS沒辦法直接對“計算出來的條件”做篩選——比如“日期是2024年上半年”“產(chǎn)品編號前三位是B07”這種條件SUMIFS要么借助輔助列要么用通配符碰運(yùn)氣。而SUMPRODUCT里的條件可以來自任何表達(dá)式Y(jié)EAR函數(shù)、MONTH函數(shù)、LEFT函數(shù)、SEARCH函數(shù)甚至其他單元格的計算結(jié)果靈活性完全不在一個量級。這也是為什么很多人最終把SUMPRODUCT當(dāng)作“條件求和Underdog”來用。2.3 跨列求和一個值得注意的坑工作中還有一類需求某業(yè)務(wù)員的“所有月度數(shù)據(jù)”橫跨B列到F列要加總起來。很多人第一反應(yīng)是寫SUMPRODUCT((A2:A100張三)*(B2:F100))這其實(shí)是錯的。SUMPRODUCT要求兩個數(shù)組的維度一致A2:A100是100行1列B2:F100是100行5列行列數(shù)量對不上結(jié)果就是#VALUE!。正確的思路是先把多列合并成一個單列數(shù)組再讓條件數(shù)組與它相乘比如SUMPRODUCT((A2:A100張三)*(B2:B100C2:C100D2:D100E2:E100F2:F100))這個公式里B到F五列先逐行相加得到一個100行1列的“每月合計”數(shù)組再與“張三”這個條件數(shù)組相乘最后加總。邏輯嚴(yán)謹(jǐn)不會報錯。如果你表格里有幾十列建議直接用輔助列先把橫向合計算出來SUMPRODUCT再去引用輔助列這樣公式更短、排查問題也更方便。這個坑我想重點(diǎn)強(qiáng)調(diào)因?yàn)槲乙娺^不少人拿著“區(qū)域匹配”的寫法到處問為什么報錯。SUMPRODUCT對數(shù)組形狀的要求非常嚴(yán)格寧可先用加法或輔助列把每行數(shù)據(jù)聚合也不要試圖拿一個單列條件去匹配一個多列區(qū)域。2.4 按日期區(qū)間求和別被TEXT函數(shù)帶偏日期區(qū)間求和也是高頻需求。比如要統(tǒng)計2024年1月的銷售額有兩種常見寫法。第一種用YEAR和MONTH拆解SUMPRODUCT((YEAR(A2:A1000)2024)*(MONTH(A2:A1000)1)*G2:G1000)第二種用DATE直接圈定起止日期SUMPRODUCT((A2:A1000DATE(2024,1,1))*(A2:A1000DATE(2024,1,31))*G2:G1000)第二種寫法比第一種更快因?yàn)閅EAR和MONTH是對每個日期執(zhí)行函數(shù)計算DATE方式只做兩次比較。數(shù)據(jù)量到幾萬行時性能差異能明顯感覺到。這里有個常見坑很多人喜歡用TEXT(A2:A1000,YYYYMM)202401來判斷月份。TEXT函數(shù)確實(shí)能把日期轉(zhuǎn)成文本再比較但它在數(shù)組運(yùn)算里會消耗大量資源而且當(dāng)A列里有文本型日期、空單元格時TEXT的處理結(jié)果很不可控。我的建議是能用DATE比較堅決用DATE別把文本函數(shù)塞進(jìn)SUMPRODUCT里當(dāng)主力條件。另外要確認(rèn)日期列真的是日期格式。如果A列是從系統(tǒng)導(dǎo)出的一串“2024/1/5”文本上述公式完全失效。判斷方法很簡單選中日期列看單元格格式是否為日期或者用ISNUMBER(A2)看一下返回TRUE才是真正的日期。3. 進(jìn)階能力條件計數(shù)、加權(quán)平均與模糊匹配3.1 條件計數(shù)不寫SUM也能統(tǒng)計行數(shù)SUMPRODUCT不僅能求和還能計數(shù)。把求和區(qū)域去掉只保留條件數(shù)組就得到符合條件的數(shù)量SUMPRODUCT((B2:B1000華東)*(C2:C1000電商))這里兩個條件數(shù)組相乘得到1或0的數(shù)組全部加起來就是同時滿足兩個條件的行數(shù)。用逗號分隔參數(shù)的寫法也行SUMPRODUCT(--(B2:B1000華東), --(C2:C1000電商))--是“負(fù)負(fù)得正”的速寫把TRUE轉(zhuǎn)成1、FALSE轉(zhuǎn)成0。寫--的原因前面提到過SUMPRODUCT對直接傳入的邏輯值數(shù)組并不會按你想的那樣自動轉(zhuǎn)換所以要么讓邏輯值參與乘法要么用--或*1手動轉(zhuǎn)成數(shù)字。條件計數(shù)在多條件交叉分析中非常好用尤其是配合SUMIFS不支持的表達(dá)式條件時幾乎無可替代。3.2 加權(quán)平均SUMPRODUCT最擅長的場景平均單價、平均成本這種“加權(quán)平均”需求SUMPRODUCT幾乎是為它量身定做的。比如要算A100這個產(chǎn)品型號的加權(quán)平均單價公式分兩步分子是所有A100的銷售額之和分母是所有A100的數(shù)量之和。SUMPRODUCT((D2:D1000A100)*E2:E1000*F2:F1000)/SUMPRODUCT((D2:D1000A100)*E2:E1000)分子里條件數(shù)組乘以數(shù)量數(shù)組再乘以單價數(shù)組本質(zhì)是每條A100記錄的“數(shù)量×單價”加總也就是銷售額分母是A100的所有數(shù)量加總。兩者相除就是A100的加權(quán)平均單價。注意分子和分母都必須帶上條件。很多人圖省事分子用了SUMPRODUCT(E2:E1000, F2:F1000)分母用了SUM(E2:E1000)結(jié)果把其他產(chǎn)品的數(shù)量混了進(jìn)來平均單價算得離譜還不自知。加權(quán)平均這種場景條件必須同時約束分子和分母這是繞不開的原則。3.3 模糊條件求和SEARCHFIND的正確搭配SUMPRODUCT本身不支持通配符這是很多人的誤區(qū)。SUMIFS支持*和?SUMPRODUCT不支持但它可以通過組合函數(shù)實(shí)現(xiàn)比通配符更強(qiáng)大的模糊匹配。最常見的組合是ISNUMBER(SEARCH(關(guān)鍵詞, 區(qū)域))。比如要統(tǒng)計“區(qū)域名稱中包含‘華東’字樣”的銷售額公式寫SUMPRODUCT((ISNUMBER(SEARCH(華東, B2:B1000)))*G2:G1000)拆解一下SEARCH(華東, B2:B1000)會在每一行的B列里查找“華東”找到就返回一個位置數(shù)字找不到就返回#VALUE!錯誤ISNUMBER再把數(shù)字轉(zhuǎn)為TRUE、錯誤轉(zhuǎn)為FALSE最后TRUE/FALSE參與乘法轉(zhuǎn)為1/0。這里要注意SEARCH和FIND的區(qū)別SEARCH不區(qū)分大小寫且支持通配符適合對中文、英文大小寫不敏感的場景FIND區(qū)分大小寫適合精確匹配場景。如果需要匹配多個關(guān)鍵詞比如“華東”或“華南”都算用加號實(shí)現(xiàn)OR邏輯SUMPRODUCT((ISNUMBER(SEARCH(華東, B2:B1000))ISNUMBER(SEARCH(華南, B2:B1000))0)*G2:G1000)加了0是為了防止同一行同時命中多個關(guān)鍵詞時出現(xiàn)“2”把結(jié)果加倍。不加0在“同一行不可能同時滿足兩個條件”的場景下也能用但一旦條件有重疊就會出錯。穩(wěn)妥起見OR邏輯下我習(xí)慣加一層判斷。3.4 去重計數(shù)經(jīng)典但要注意空值要對某列的值去重后計數(shù)SUMPRODUCT有一個流傳已久的經(jīng)典公式SUMPRODUCT(1/COUNTIF(A2:A100, A2:A100))原理很巧妙如果某個值在區(qū)域里出現(xiàn)了n次COUNTIF會針對每一個單元格返回n1/n累加n次正好是1。也就是說每個唯一值最終貢獻(xiàn)1加總結(jié)果就是唯一值的個數(shù)。但這個公式有一個非常致命的坑如果A2:A100區(qū)域里有空單元格COUNTIF會返回01/0直接報錯。解決思路是先排除空值SUMPRODUCT((A2:A100)/COUNTIF(A2:A100, A2:A100))不過我必須提醒你這個變體不是在所有Excel版本里都表現(xiàn)一致尤其是舊版本對空單元格的計數(shù)規(guī)則差異很大。真正常用且穩(wěn)妥的做法是先把區(qū)域里的空值用輔助列過濾掉或者直接用數(shù)據(jù)透視表、Power Query做去重計數(shù)。SUMPRODUCT去重公式適合數(shù)據(jù)量小、區(qū)域干凈的場景數(shù)據(jù)量一大比如超過幾千行這個公式會卡得讓人懷疑人生。4. 組合技把SUMPRODUCT變成真正的“瑞士軍刀”4.1 搭配LEFT/MID提取文本條件實(shí)際數(shù)據(jù)里很多產(chǎn)品編號、員工編號、訂單號都帶著分類信息。比如產(chǎn)品編號的前三位是“B07”代表某個大類要統(tǒng)計這類產(chǎn)品的銷售額可以用LEFT先截取再比較SUMPRODUCT((LEFT(D2:D1000,3)B07)*G2:G1000)LEFT返回文本片段與“B07”比較得到TRUE/FALSE數(shù)組后續(xù)邏輯和普通條件完全一樣。用MID從中間截取也行比如身份證號的出生年份判斷。這是SUMIFS很難做到的因?yàn)镾UMIFS的條件區(qū)域只能引用原始數(shù)據(jù)列不能先做一次文本提取再比較。SUMPRODUCT可以自由嵌套這些文本函數(shù)相當(dāng)于把條件計算能力交給了函數(shù)本身。4.2 配合MAX/MIN求條件下的最大最小值求“華東區(qū)域的最大銷售額”這樣的需求很多人第一時間想到MAXIFS。但在老版本Excel里沒有MAXIFS這時候SUMPRODUCT可以頂上來SUMPRODUCT(MAX((B2:B1000華東)*G2:G1000))這個公式的思路是條件數(shù)組乘以銷售額數(shù)組非華東行的銷售額全部變成0MAX在這些值里找最大數(shù)自然就是華東區(qū)域的最大銷售額。SUMPRODUCT包住MAX讓整個表達(dá)式按數(shù)組運(yùn)算執(zhí)行不需要三鍵結(jié)束。不過要留個心眼如果銷售額存在負(fù)數(shù)非華東行的0有可能成為最大值結(jié)果就不對了。遇到可能有負(fù)數(shù)的場景建議改用MAXIFS如果版本支持或者先用IF把不符合條件的行變成極小值比如-10^10再套MAX??偟膩碚f正數(shù)數(shù)據(jù)用這個技巧非常爽負(fù)數(shù)數(shù)據(jù)要慎重。4.3 OR邏輯的正確姿勢SIGN函數(shù)來解決前面提到過加號實(shí)現(xiàn)OR邏輯。如果不希望結(jié)果出現(xiàn)“2”可以用SIGN函數(shù)或比較判斷來收口。比如統(tǒng)計“華東或華南區(qū)域的總銷售額”SUMPRODUCT((SIGN((B2:B1000華東)(B2:B1000華南)))*G2:G1000)SIGN的作用是把正數(shù)統(tǒng)一變成1兩條件都滿足時加號得到2SIGN會把它歸為1只滿足一個條件時得到1SIGN保持1都不滿足時得到0SIGN保持0。這樣既實(shí)現(xiàn)了OR邏輯又不會出現(xiàn)重復(fù)計數(shù)。如果覺得SIGN不夠直觀也可以寫(((B2:B1000華東)(B2:B1000華南))0)效果一樣。這個細(xì)節(jié)屬于“能跑但不嚴(yán)謹(jǐn)”和“嚴(yán)謹(jǐn)且能跑”的區(qū)別實(shí)際工作中建議直接把SIGN或0寫上省得日后被數(shù)據(jù)拖累。4.4 動態(tài)條件面板讓公式跟著單元格走SUMPRODUCT的條件可以直接引用單元格值做動態(tài)篩選。比如在H1下拉框選區(qū)域I1下拉框選渠道公式寫成SUMPRODUCT((B2:B1000$H$1)*(C2:C1000$I$1)*G2:G1000)這樣只要改下拉框結(jié)果自動刷新不需要手動改公式。特別適合做儀表盤、日報模板。要點(diǎn)是絕對引用$H$1否則往下拖公式時條件單元格會跟著跑。配合數(shù)據(jù)驗(yàn)證的下拉列表這組公式幾乎就是一個輕量級BI看板。我自己的銷售周報模板里區(qū)域、渠道、產(chǎn)品型號三個下拉框一個SUMPRODUCT公式就能自由切換絕大多數(shù)維度的匯總需求。這個思路比做十幾個SUMIFS公式要清爽得多。5. 實(shí)戰(zhàn)案例一張銷售匯總報表的落地過程5.1 需求與數(shù)據(jù)結(jié)構(gòu)假設(shè)你拿到一張2024年銷售明細(xì)表大概長這樣日期區(qū)域渠道產(chǎn)品型號數(shù)量單價銷售額2024/1/5華東電商A100305015002024/1/6華南門店B200158012002024/2/3華東電商A1001248576老板的需求來了華東區(qū)域、電商渠道賣出去的A100全年銷售額是多少A100這個產(chǎn)品的加權(quán)平均單價是多少如果我想在報表右上角做一個篩選器自由切換區(qū)域和渠道匯總數(shù)據(jù)怎么聯(lián)動5.2 完整公式逐步拆解需求1直接套多條件求和寫法SUMPRODUCT((B2:B1000華東)*(C2:C1000電商)*(D2:D1000A100)*G2:G1000)需求2加權(quán)平均單價SUMPRODUCT((D2:D1000A100)*E2:E1000*F2:F1000)/SUMPRODUCT((D2:D1000A100)*E2:E1000)需求3動態(tài)篩選器。假設(shè)H1是區(qū)域選擇I1是渠道選擇SUMPRODUCT((B2:B1000$H$1)*(C2:C1000$I$1)*G2:G1000)三個公式抄完再配合條件格式和圖表一張銷售匯總看板的核心就出來了。整個過程不需要輔助列、不需要透視表刷新、不需要VBA維護(hù)成本極低。5.3 性能優(yōu)化與實(shí)操心法這個案例的數(shù)據(jù)量如果只有幾千行上面的公式隨便跑。但如果到了幾十萬行SUMPRODUCT的數(shù)組運(yùn)算會開始變慢尤其是公式里用了YEAR、LEFT這類逐行計算函數(shù)時卡頓會非常明顯。我的經(jīng)驗(yàn)法則能用精確范圍不用整列引用。A:A會讓Excel把一百多萬行都納入數(shù)組運(yùn)算完全沒必要。寫A2:A50000比A:A快得多。能用比較運(yùn)算少用文本函數(shù)。(A2:A1000DATE(2024,1,1))比(TEXT(A2:A1000,YYYYMM)202401)快一個量級。超大表格優(yōu)先SUMIFS。SUMPRODUCT在十萬行場景下仍然可用但如果同時有幾十個條件組合SUMIFS的性能優(yōu)勢非常明顯。日常小表追求靈活性用SUMPRODUCT大數(shù)據(jù)量常規(guī)條件求和用SUMIFS。公式如果特別長考慮拆分成輔助列。比如先把“月份”用輔助列算出來SUMPRODUCT再去引用月份列雖然多了一列但公式可讀性和計算速度都會提升。這套經(jīng)驗(yàn)是我做了大量報表后總結(jié)出來的。寧可數(shù)據(jù)表里多一些輔助列也別讓一個SUMPRODUCT公式長到?jīng)]人敢動。6. 常見問題與排查技巧實(shí)錄6.1 明明有數(shù)據(jù)結(jié)果卻一直是0這是SUMPRODUCT條件求和最常見的故障。排查順序很重要。先看條件區(qū)域里是不是有不可見字符。從系統(tǒng)導(dǎo)出的數(shù)據(jù)經(jīng)常帶著空格B列看起來是“華東”實(shí)際上是“華東 ”或者“ 華東”。用TRIM函數(shù)處理?xiàng)l件區(qū)域公式改成SUMPRODUCT((TRIM(B2:B1000)華東)*G2:G1000)再看求和區(qū)域是不是文本型數(shù)字。G列如果是從其他系統(tǒng)導(dǎo)出的很多單元格左上角有綠色三角那是文本格式的數(shù)字。文本數(shù)字參與乘法時會報錯或返回0。確認(rèn)方法在任意空白單元格輸入1并復(fù)制選中G列右鍵選擇性粘貼選擇“乘”把文本數(shù)字批量轉(zhuǎn)成真數(shù)字。6.2 返回#VALUE!錯誤#VALUE!錯誤多數(shù)情況下是兩個原因。一是數(shù)組維度不一致。條件區(qū)域是A2:A100求和區(qū)域是G2:G99行列數(shù)對不上直接報錯。檢查每一個區(qū)域的范圍是否完全一致。二是求和區(qū)域里有文本內(nèi)容。_SUMPRODUCT在遇到文本與數(shù)字相乘時經(jīng)常直接返回錯誤而不是自動忽略。比如G列里有一行寫著“未結(jié)算”條件滿足時1*“未結(jié)算”就變成錯誤。這種只能先把數(shù)據(jù)清洗干凈或者用IF和ISNUMBER做保護(hù)。用F9調(diào)試技巧可以定位具體是哪一行的問題在編輯欄里選中公式片段比如(B2:B1000華東)*G2:G1000按F9查看計算結(jié)果數(shù)組哪一行出現(xiàn)#VALUE!問題就出在哪一行??赐暌欢ㄒ碋sc退出否則公式會被替換成計算結(jié)果這個操作習(xí)慣必須養(yǎng)成。6.3 結(jié)果偏大或偏小OR邏輯的隱藏問題公式跑通了但結(jié)果跟預(yù)期對不上最常見的原因是條件里的OR邏輯沒有收口。比如前面提到的用加號連接多個條件一旦同一行同時滿足兩個條件加號會得到2直接把結(jié)果翻倍。這類問題不報錯肉眼排查比較費(fèi)勁。建議在寫OR條件時一律加上SIGN或0收口從源頭上避免。另一個隱蔽問題是數(shù)組維度雖然沒有錯但條件數(shù)組的列數(shù)與求和區(qū)域不一致導(dǎo)致SUMPRODUCT做了笛卡爾式擴(kuò)展。這個問題比較少見但一旦出現(xiàn)結(jié)果會大得離譜。遇到結(jié)果異常的第一反應(yīng)就是框選公式的每個區(qū)域?qū)Ρ刃袛?shù)列數(shù)。6.4 SUMPRODUCT還是SUMIFS選型對照表很多同學(xué)會在SUMPRODUCT和SUMIFS之間糾結(jié)我用一張表把區(qū)別說透對比維度SUMPRODUCTSUMIFS基本多條件求和完整支持原生支持條件區(qū)域引用可以是表達(dá)式如YEAR、LEFT、SEARCH必須是單元格區(qū)域引用模糊匹配配合SEARCH/FIND實(shí)現(xiàn)支持通配符條件里直接支持通配符OR邏輯用加號SIGN實(shí)現(xiàn)需要拆分公式再相加跨列求和需先把多列合并再乘條件需逐列SUMIFS再相加加權(quán)求和直接乘積再求和需要額外輔助列大數(shù)據(jù)量性能相對較慢明顯更快數(shù)組確認(rèn)方式天然數(shù)組不需三鍵無數(shù)組要求我的個人建議是小數(shù)據(jù)量、條件靈活、需要加權(quán)或模糊匹配的場景無腦選SUMPRODUCT十萬行以上、條件固定、追求性能的場景優(yōu)先SUMIFS。兩者不是替代關(guān)系而是互補(bǔ)關(guān)系。哪個用著順手就用哪個但一定要清楚各自邊界別用錯場景。最后再分享一個我調(diào)試SUMPRODUCT時經(jīng)常用的小技巧復(fù)雜公式寫完后不要著急放回數(shù)據(jù)里跑先在表格下方復(fù)制一行真實(shí)數(shù)據(jù)用簡化版公式逐步驗(yàn)算。比如先驗(yàn)單條件加法再加上第二個條件最后核對總結(jié)果。這樣可以避免一次性寫一大串公式出錯后還要滿表格找問題。SUMPRODUCT是個好工具但用它的人要是沒有清晰的邏輯再強(qiáng)的工具也會變成事故現(xiàn)場。愿這篇文章能幫你少走一些彎路多省一些時間。