SUMPRODUCT 函數的主要功能是將指定的陣列或範圍中相對應的元素相乘,並傳回所有乘積的總和。除了基本的相乘加總,它也常被用來處理複雜的多條件加總與計數需求。
Excel SUMPRODUCT 函數語法
=SUMPRODUCT(陣列1, [陣列2], [陣列3], ...)| 參數 | 必填 | 說明 |
|---|---|---|
| 陣列1 | 是 | 要相乘並加總的第一個陣列或儲存格範圍。 |
| 陣列2, ... | 選填 | 要相乘並加總的第二個到第 255 個陣列或儲存格範圍。 |
回傳:數值
適用版本:Excel 2007 以上版本、Microsoft 365
SUMPRODUCT 函數範例
範例 1:基本相乘加總
計算商品總銷售金額(單價 × 數量)
| 商品 | 單價 | 數量 |
|---|---|---|
| 蘋果 | 30 | 50 |
| 香蕉 | 20 | 100 |
| 橘子 | 25 | 80 |
| 芭樂 | 40 | 30 |
在 E2 輸入公式:
=SUMPRODUCT(B2:B5, C2:C5)結果:6700。公式會將單價與數量對應相乘(30×50、20×100、25×80、40×30),再將這四個乘積加總,得出總銷售金額 6700。
範例 2:單一條件加總
計算特定業務員的總業績
| 業務員 | 客戶 | 業績 |
|---|---|---|
| 王小明 | A公司 | 5000 |
| 陳怡君 | B公司 | 8000 |
| 王小明 | C公司 | 3000 |
| 林雅婷 | D公司 | 6000 |
在 E2 輸入公式:
=SUMPRODUCT((A2:A5="王小明")*C2:C5)結果:8000。先判斷 A 欄是否為王小明,產生 TRUE 或 FALSE。透過乘號將邏輯值轉換為 1 或 0,再與 C 欄的業績相乘並加總,得出 8000。
範例 3:多條件計數
計算特定部門且考績為 A 的人數
| 姓名 | 部門 | 考績 |
|---|---|---|
| 王小明 | 業務部 | A |
| 陳怡君 | 行銷部 | A |
| 林雅婷 | 業務部 | B |
| 張建國 | 業務部 | A |
| 李志明 | 行銷部 | B |
在 E2 輸入公式:
=SUMPRODUCT((B2:B6="業務部")*(C2:C6="A"))結果:2。兩個條件分別產生 TRUE 或 FALSE 的陣列,相乘時 TRUE 會轉為 1、FALSE 轉為 0。只有兩個條件皆成立時乘積才為 1,加總後得出符合條件的總人數 2。
使用 SUMPRODUCT 的技巧與注意事項
- 使用逗號分隔陣列時,SUMPRODUCT 會忽略非數值的儲存格;但若使用 * 號進行陣列相乘,遇到文字會產生 #VALUE! 錯誤。
- 在多條件判斷時,常利用雙減號 -- 將 TRUE/FALSE 陣列強制轉換為 1/0 的數值陣列,例如 =SUMPRODUCT(--(A1:A5="條件"))。
- SUMPRODUCT 可以在不使用陣列公式快速鍵(Ctrl+Shift+Enter)的情況下處理陣列運算,是早期 Excel 版本處理複雜條件的首選。
SUMPRODUCT 常見錯誤與解決方法
| 錯誤 | 原因 | 解決方法 |
|---|---|---|
| #VALUE! | 引數中的陣列維度(列數與欄數)不一致。 | 確保所有陣列範圍的大小完全相同,例如 A1:A5 與 B1:B5 的列數必須一致。 |
| #VALUE! | 陣列中包含無法轉換為數值的文字,且公式中使用了數學運算子(如 *)。 | 若僅是相乘加總,可改用逗號分隔陣列,SUMPRODUCT 會自動將文字視為 0 處理而不報錯。 |
Google 試算表可以用 SUMPRODUCT 嗎?
Google 試算表完全支援 SUMPRODUCT 函數,用法與 Excel 完全相同,也能處理多條件的陣列運算。
下載 SUMPRODUCT 範例檔
上面的範例都整理在這個檔案裡,每個範例一個工作表,黃色格子是公式,可以直接改資料看結果變化:SUMPRODUCT 範例.xlsx(範例公式都在試算表軟體實際計算過)。
常見問題
SUMPRODUCT 和 SUMIFS 有什麼不同?
SUMPRODUCT 支援更複雜的陣列運算與資料轉換,而 SUMIFS 只能針對實體儲存格範圍設定條件。若只需單純的多條件加總,SUMIFS 的計算速度通常較快。
為什麼條件判斷要用乘號 * 或雙減號 --?
因為條件判斷產生的結果是邏輯值 TRUE 或 FALSE,SUMPRODUCT 無法直接加總邏輯值。透過數學運算(如乘法或加上雙減號)可以將其轉換為數值 1 或 0。
SUMPRODUCT 遇到空白儲存格會怎樣?
SUMPRODUCT 會將空白儲存格視為 0 處理。如果是相乘運算,該列的乘積會變成 0,不會影響其他列的加總結果,也不會產生錯誤。
相關函數
這篇收錄在「Excel 函數字典」。




