一條公式算出兩個區域(SUMIF 的 OR 寫法)
題目
題目說明
訂單記錄 A2:C11 混了四個區域,而覆盤簡報要的是 North 與 East 合計——一個數字,不是兩個。請把這兩個區域的合計放進 North + East total 儲存格 E2。
SUMIF 每給一個條件只回一個數字,所以丟兩個區域給它時只做了一半——外面那層 SUM 才是把結果加回來的地方。
題目資料
用表格檢視整份資料(可選取、可複製)
| A | B | C | E | |
|---|---|---|---|---|
| 1 | Region | Order | Sales | North + East total |
| 2 | North | ORD-2001 | 1250 | |
| 3 | South | ORD-2002 | 800 | |
| 4 | North | ORD-2003 | 960 | |
| 5 | East | ORD-2004 | 600 | |
| 6 | West | ORD-2005 | 700 | |
| 7 | North | ORD-2006 | 330 | |
| 8 | East | ORD-2007 | 480 | |
| 9 | South | ORD-2008 | 1200 | |
| 10 | West | ORD-2009 | 250 | |
| 11 | East | ORD-2010 | 90 |
觀念解析
條件可以是陣列常數:SUMIF(A2:A11, {"North","East"}, C2:C11) 會回傳「兩個」合計(每個區域一個),形成一個值陣列。外層的 SUM 把這個陣列收成報表要的單一數字。改寫成兩個 SUMIF 相加也得到同樣答案——兩個區域還行,六個區域就很痛苦。同樣的陣列常數也能放進 SUMIFS,等之後多一個條件時,這才是該留下的習慣。
解題思路
答案寫在 E2。送出時我們會換 3 組輸入重跑你的公式,寫死數字一定過不了 —— 公式必須跟著儲存格走。
- 目標儲存格是 E2
- 區域在 A2:A11,金額在 C2:C11
- 條件可以寫成陣列常數 {"North","East"},SUMIF 就會一次回傳每個區域各一個合計
- 形狀:=SUM(SUMIF(?, {?,?}, ?)) 或 =SUMIF(?,?,?) + SUMIF(?,?,?)
官方解法
展開 2 種解法(建議先自己試一次)
解法 1:陣列常數條件 + 外層 SUM
=SUM(SUMIF(A2:A11, {"North","East"}, C2:C11))
陣列常數讓 SUMIF 拿到兩個條件,於是它算兩次、回傳兩個數字的陣列。少了外層 SUM,你只會看到第一個區域的合計——這是這條公式最常見的壞法。要再加第三個區域,只要往常數裡多寫一個值,SUM 不必改。
解法 2:兩個 SUMIF 相加
=SUMIF(A2:A11,"North",C2:C11)+SUMIF(A2:A11,"East",C2:C11)
總和一樣,只是攤開來寫。每個區域都有自己的標籤欄時比較好讀,但寫法會線性增長:六個區域就是六次 SUMIF,也多六個打錯字的機會。
函數指南
常見問題
同一欄裡要多加幾個指定值,該怎麼寫?
=SUM(SUMIF(A2:A11, {"North","East"}, C2:C11):陣列常數放你想加總的值,SUMIF 每個值各回一個合計,最外層 SUM 再加起來。這是單欄版本的「在這份名單裡」。
為什麼我的 OR 公式只回傳第一個區域?
因為帶陣列常數的 SUMIF 回傳的是陣列,不是單一值。外面沒有 SUM 時,Excel 只顯示陣列的第一項——公式看起來能跑,卻默默把其他區域丟掉了。
陣列常數也能用在 SUMIFS 嗎?
可以。=SUM(SUMIFS(C2:C11, A2:A11, {"North","East"})) 得到同樣的合計,而且之後再加第二個條件也不必改寫法——這是 SUMIF 做不到的。