SUMPRODUCT 是 Excel 中最強大的函數之一,可以用于 ?多條件求和、加權計算、數組運算? 等復雜場景。下面通過 ?基礎語法 + 實用案例? 徹底講透它的用法!
?一、基礎語法?
=SUMPRODUCT(數組1, [數組2], [數組3], ...)
- ?功能?:將多個數組的對應元素相乘后求和。
- ?核心規則?:
- 所有數組必須 ?大小相同?(行數、列數一致)。
- 非數值(如文本、邏輯值)在逗號分隔時視為
0
,用運算符連接時可能報錯。
?二、6大經典用法?
?1. 基本用法:兩列相乘求和?
? ?場景?:計算總銷售額(單價 × 數量)。
產品 | 單價 | 數量 |
---|---|---|
產品A | 100 | 2 |
產品B | 200 | 1 |
產品C | 50 | 4 |
=SUMPRODUCT(B2:B4, C2:C4)
?結果?:100×2 + 200×1 + 50×4 = 600
? ?等效寫法?:
=SUMPRODUCT(B2:B4 * C2:C4)
?2. 多條件求和(替代SUMIFS)??
? ?場景?:統計“銷售部”且“銷售額>5000”的總金額。
部門 | 銷售額 |
---|---|
銷售部 | 3000 |
技術部 | 6000 |
銷售部 | 7000 |
=SUMPRODUCT((A2:A4="銷售部") * (B2:B4>5000) * B2:B4)
?結果?:7000
(僅第3行符合條件)
🔍 ?邏輯分解?:
(A2:A4="銷售部")
→{1,0,1}
(B2:B4>5000)
→{0,1,1}
- 相乘后篩選:
{0,0,1} * {3000,6000,7000} = {0,0,7000}
- 求和:
7000
?3. 加權平均計算?
? ?場景?:計算3種產品的加權平均單價(權重=銷量)。
產品 | 單價 | 銷量 |
---|---|---|
產品A | 10 | 100 |
產品B | 20 | 50 |
產品C | 30 | 30 |
=SUMPRODUCT(B2:B4, C2:C4) / SUM(C2:C4)
?計算過程?:
- 分子:
10×100 + 20×50 + 30×30 = 2900
- 分母:
100 + 50 + 30 = 180
- 結果:
2900 / 180 ≈ 16.11
?4. 多列混合運算(加減乘除)??
? ?場景?:計算 (A列+B列) × C列
的總和。
A列 | B列 | C列 |
---|---|---|
1 | 2 | 3 |
4 | 5 | 6 |
=SUMPRODUCT((A2:A3 + B2:B3) * C2:C3)
?結果?:(1+2)×3 + (4+5)×6 = 9 + 54 = 63
?5. 條件計數(替代COUNTIFS)??
? ?場景?:統計“銷售部”且“銷售額>5000”的訂單數。
=SUMPRODUCT((A2:A4="銷售部") * (B2:B4>5000))
?結果?:1
(只有第3行符合)
?6. 處理復雜條件(OR邏輯)??
? ?場景?:統計“銷售部”或“技術部”的銷售額總和。
=SUMPRODUCT(((A2:A4="銷售部") + (A2:A4="技術部")) * B2:B4)
?關鍵技巧?:用 +
表示 ?OR,*
表示 ?AND。
?三、常見錯誤及解決?
錯誤類型 | 原因 | 解決方法 |
---|---|---|
#VALUE! | 數組大小不一致 | 檢查所有數組的行列數是否相同 |
#N/A | 數據含錯誤值 | 用 IFERROR 處理:=SUMPRODUCT(IFERROR(數組,0)) |
結果為零 | 條件無匹配或數據為文本 | 用 COUNTIFS 驗證條件是否成立 |
?四、性能優化技巧?
- ?避免整列引用?:用
A2:A100
替代A:A
,減少計算量。 - ?預計算輔助列?:復雜運算可先在其他列計算,再用SUMPRODUCT求和。
- ?替代方案?:
- 多條件求和 →
SUMIFS
- 簡單相乘求和 →
MMULT
(矩陣運算)
- 多條件求和 →
?五、總結?
- ?SUMPRODUCT = 條件篩選 + 數組運算 + 自動求和?
- ?運算符選擇?:
- 逗號(
,
)→ 自動忽略非數字 - 星號(
*
)→ 嚴格計算,需處理錯誤
- 逗號(
- ?適用場景?:加權平均、多條件求和、復雜數組運算。
六、案例
=SUMPRODUCT(E33:K33, VLOOKUP($E$32:$K$32, $D$23:$M$30, 10, FALSE))
1. VLOOKUP部分:查找權重值?
VLOOKUP($E$32:$K$32, $D$23:$M$30, 10, FALSE)
- ?查找值?:
$E$32:$K$32
?→ 銷售階段名稱("潛在","接觸",...,"成交") - ?查找范圍?:
$D$23:$M$30
?→ 上方權重表(含階段名稱和權重百分比) - ?返回列?:
10
?→ 權重百分比所在列(第10列,即M23:M30
) - ?匹配方式?:
FALSE
?→ 精確匹配
?輸出結果?:
{3.57%, 7.14%, 10.71%, 14.29%, 17.86%, 21.43%, 25.00%}
?2. SUMPRODUCT部分:計算加權和?
SUMPRODUCT(E33:K33, 上述VLOOKUP結果)
- ?數組1?:
E33:K33
?→ 1Q各階段數值(200,205,210,215,220,225,230) - ?數組2?:VLOOKUP返回的權重數組
- ?計算過程?:
200×3.57% + 205×7.14% + 210×10.71% + 215×14.29% + 220×17.86% + 225×21.43% + 230×25.00% = 220