- 公開日:
- 更新日:
ExcelのSUMIF関数を使って複数条件をOR条件/AND条件で対応する方法
Excel(エクセル)のSUMIF関数で複数条件に対応する方法をOR(または)条件、AND(かつ)条件のパターンに分けてご紹介します。ご自身の状況にあったやり方をご覧ください。
AND条件ではSUMIF関数とAND関数を組み合わせた方法の他にSUMIFS関数の使い方もご紹介しています。
SUMIF関数の書式
SUMIF(サムイフ)関数は、指定された検索条件に一致するセルの値を合計します。
SUMIF関数の書式は「=SUMIF(範囲,検索条件,[合計範囲])」のように記述します。引数については下記の記事で図解入りで説明していますのでご確認ください。
ExcelのSUMIF関数の使い方|検索条件に一致するセルの値を合計する
OR条件とAND条件の違い
複数条件を指定する際、OR(または)条件とAND(かつ)条件に分けられます。両者の違いを確認してみましょう。

OR条件とAND条件の違いをベン図にしました。OR条件は条件1、条件2のいずれかを満たしていればいいですが、AND条件は条件1、条件2ともに満たしている必要があります。
- OR条件:条件1または条件2
- AND条件:条件1かつ条件2
複数条件をOR条件で合計する方法(同一列の場合)
SUMIF関数を使って同じ列にある複数条件を指定するときにOR条件で合計を求める方法をご紹介します。

例えば、上図からりんごとバナナの合計販売数量を求めるとします。まず関数を入力したい【セル(例ではD12セル)】を選択します。

1つめの条件として商品名からりんごを検索して合計するSUMIF関数を記述します。数式バーに『=SUMIF(C3:C11,"りんご",D3:D11)』と入力します。
2つめの条件として商品名からバナナを検索して合計するSUMIF関数を記述し、加算します。「=SUMIF(C3:C11,"りんご",D3:D11)」に続いて『+SUMIF(C3:C11,"バナナ",D3:D11)』と入力します。

1つめの条件(りんご)と2つめの条件(バナナ)でそれぞれ合計したものを足した結果が表示されました。
検索条件に配列を使用した例
上記ではSUMIF関数同士を足すことでOR条件の合計を求めましたが、「範囲」が同じ列であればSUMIF関数の検索条件に配列を指定することで1つのSUMIF関数で同じ結果を得ることができます。

数式バーに『=SUM(SUMIF(C3:C11,{"りんご","バナナ"},D3:D11))』と入力します。
SUMIF関数の検索条件として「{"りんご","バナナ"}」のように配列の形式で指定しています。SUM関数の中にSUMIF関数を入れ子にすることで検索条件に指定した配列内のそれぞれに対して返った結果を合計します。
複数条件をOR条件で合計する方法(複数列の場合)
SUMIF関数を使って複数列にある複数条件を指定するときにOR条件で合計を求める方法をご紹介します。

例えば、上図から「11月2日分」または「バナナ」のいずれかに一致する合計販売数量を求めるとします。まず関数を入力したい【セル(例ではD12セル)】を選択します。

1つめの条件として日付から11月2日を検索して合計するSUMIF関数を記述します。数式バーに『=SUMIF(B3:B11,"2019/11/2",D3:D11)』と入力します。

2つめの条件として商品名からバナナを検索して合計するSUMIF関数を記述し、加算します。「=SUMIF(B3:B11,"2019/11/2",D3:D11)」に続いて『+SUMIF(C3:C11,"バナナ",D3:D11)』と入力します。

1つめの条件(11月2日)と2つめの条件(バナナ)でそれぞれ合計したものを足した結果が表示されました。
複数シートにまたがった列を範囲指定する場合
上記では1つのシート内で複数列を範囲としましたが、範囲の列が複数シートにまたがっていても同じように合計を求めることができます。

上図のように「A店」「B店」「合計」と3つのシートに分かれています。A店とB店の日ごとの合計販売数量を求めたいとします。

「合計」シートを開き、①【C3セル】を選択し、②『=SUMIF(A店!B3:B11,A店!B3,A店!D3:D11)+SUMIF(B店!B3:B11,B店!B3,B店!D3:D11)』と入力します。
数式は長くなっていますが、「A店」シート、「B店」シートでそれぞれ日付列を範囲、B3セル(11月1日)を検索条件、販売数量列を合計範囲としています。

C3セルに11月1日の販売数量の合計が出力されました。他の行にも反映するためにC3セル右下をC11セルまでドラッグしてオートフィルを行います。

日ごとにA店、B店の合計販売数量が求められました。複数シートにまたがってもSUMIF関数を使えば条件に合ったセルの値を合計することができます。
複数条件をAND条件で合計する方法
SUMIF関数を使って複数条件を指定するときにAND(かつ)条件で合計を求める方法をご紹介します。
SUMIF関数とAND関数を組み合わせる方法
SUMIF関数とAND関数を組み合わせることで複数条件をAND条件で合計を求めることができます。

例えば、上図で11月2日以降のバナナの合計販売数量を求めたいとします。「11月2日以降」かつ「バナナ」なのでAND条件になります。
まず作業用の列を追加します。

①【E3セル】を選択し、②『=AND(B3>=$B$6,C3="バナナ")』と入力します。AND関数は「=AND (論理式1, [論理式2], ...)」のように記述し、すべての条件が成立する場合はTRUEを返し、それ以外はFALSEを返します。
B3セルが「11月2日」以降かどうか、C3セルが「バナナ」かどうかを判定します。

AND関数で判定したところ3行目は「FALSE」と表示されました。他の行にも反映させるためE3セルの右下をE11セルまでドラッグしてオートフィルします。

E列に「11月2日以降」かつ「バナナ」の条件を満たしているかどうか「TRUE」と「FALSE」で出力されました。①【D12セル】を選択し、②『=SUMIF(E3:E11,TRUE,D3:D11)』と入力します。
範囲では作業列を指定し、検索条件には「TRUE」を指定しています。

「11月2日以降」かつ「バナナ」の条件を満たしている販売数量の合計が表示されました。
SUMIFS関数を使用する方法
SUMIFS(サムイフズ)関数は、特定の条件に一致する数値の合計を求めます。書式は「=SUMIFS(合計対象範囲, 条件範囲1, 条件1, [条件範囲2, 条件2], ...)」のように記述します。
SUMIFS関数を使って複数条件をAND条件で合計を求める例をご紹介します。

例えば、上図から11月2日以降のバナナの合計販売数量を求めるとします。まずSUMIFS関数を入力する【セル(例ではD12セル)】を選択します。

数式バーに『=SUMIFS(D3:D11,B3:B11,">=2019/11/2",C3:C11,"バナナ")』と入力します。SUMIFS関数の引数は下記のように指定しています。
- 合計対象範囲:D3:D1(販売数量)
- 条件範囲1:B3:B11(日付)
- 条件1:">=2019/11/2"(11月2日以降)
- 条件範囲2:C3:C11(商品名)
- 条件2:"バナナ"(バナナ)

SUMIFS関数の結果がD12セルに表示されました。11月2日以降のバナナの合計販売量なので「11月2日:22個」と「11月3日:17個」を合計した「39」となります。
他の関数も合わせてチェック!
Office Hackでは、ここでご紹介できなかった関数の一覧ページもご用意しております。ぜひ、参考にしてください。