1つの数式で2つの地域を合計する(SUMIF の OR 指定)
問題
問題文
注文ログ A2:C11 には4つの地域が混ざっていますが、振り返り資料に必要なのは North と East を合わせた1つの数字です。この2地域の合計を North + East total のセル E2 に入力してください。
SUMIF は条件1つにつき1つの数字しか返しません。2つの地域を渡すだけでは半分で、外側の 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) は地域ごとに1つ、つまり2つの合計を値の配列として返します。外側の SUM がその配列を資料に載せられる1つの数値にまとめます。SUMIF を2つ足す書き方でも同じ答えになりますが、地域が6つになると6回書くことになります。同じ配列定数は SUMIFS でも使えるので、条件が増えたときに残すべき書き方です。
解き方のヒント
回答は E2 に入力します。送信時は 3 通りの入力で数式を再実行するので、数値を直接書くと必ず失敗します。数式はセルを参照してください。
- 回答セルは E2 です
- 地域は A2:A11、金額は C2:C11 にあります
- 検索条件は {"North","East"} のような配列定数にできます。SUMIF は地域ごとに1つずつ合計を返します
- 形:=SUM(SUMIF(?, {?,?}, ?)) または =SUMIF(?,?,?) + SUMIF(?,?,?)
模範解答
模範解答を表示(2 通り・まずは自分で試してみましょう)
解法1:配列定数の条件を SUM で包む
=SUM(SUMIF(A2:A11, {"North","East"}, C2:C11))
配列定数で SUMIF は条件を2つ受け取り、2回計算して2つの値の配列を返します。外側の SUM を外すと最初の地域の合計しか表示されません——この数式が壊れる一番の原因です。3つ目の地域を足すときは定数に値を1つ増やすだけで、SUM はそのまま使えます。
解法2:SUMIF を2つ足す
=SUMIF(A2:A11,"North",C2:C11)+SUMIF(A2:A11,"East",C2:C11)
合計は同じで、書き下した形です。地域ごとにラベルの列があるときは読みやすいですが、地域の数だけ数式が増え、打ち間違いの機会も増えます。
関数ガイド
よくある質問
同じ列から複数の指定した値を合計するには?
=SUM(SUMIF(A2:A11, {"North","East"}, C2:C11) と書きます。配列定数に合計したい値を並べると SUMIF が値ごとに合計を返し、外側の SUM がそれらを足します。1列版の「このリストのどれか」です。
OR の数式が最初の地域しか返さないのはなぜですか?
配列定数を渡した SUMIF は単一の値ではなく配列を返すからです。外側に SUM がないと Excel は配列の1つ目だけを表示します。動いているように見えて、他の地域を黙って捨てている状態です。
配列定数は SUMIFS でも使えますか?
使えます。=SUM(SUMIFS(C2:C11, A2:A11, {"North","East"})) は同じ合計になり、あとで条件を1つ増やしても書き方を変えずに済みます。SUMIF ではできない使い方です。