SUMIF関数で複数条件を指定する
ExcelのSUMIF関数は、SUM関数に条件を加えて集計することができます。Excelなどのスプレッドシートを使う上で欠かせない集計機能に、検索や条件を加えた高度な集計方法を提供します。
ここでは、SUMIF関数の基本操作のほか、1つ以上の複数条件に基づいて合計値を計算する方法を図解していきます。
そもそもSUM関数とは
SUM関数は、数値の格納されるセルの合計値を計算します。集計範囲を指定することができますが、単純合計を求めるための機能であり、条件に基づいて集計する場合には使用できません。
今回解説するSUMIF関数は、条件に応じて一致するセルの値の合計を求められるので、理解を深めておくと良いでしょう。
SUMIF関数のメリット
SUMIF関数では、条件に応じた集計を簡単に行うことができます。従来は手作業やSUM関数とIF関数の組み合わせが必要であった高度な集計が、簡単に実装できるようになっています。
さらに複数条件に対応する集計関数として、SUMIFS関数が提供されます。複数の条件を指定可能で、127個以下の検索条件が指定できます。
SUMIF関数の使い方
SUMIF関数はSUM関数のように範囲を指定し、条件を設定して使います。具体的には、次のような構文で使うことができます。
=SUMIF(範囲,検索条件,[合計範囲])
ここで示す範囲は条件によって評価するセルの範囲を示します。数値の他、名前や配列、日付などに対応します。検索条件は ” > ” や ”<” のほか、ワイルドカードの ”?” や ”*” も指定できます。 ”?” は任意の1文字、 ”*” は任意の文字シーケンスに該当します。
合計範囲の省略時は、第1引数の範囲が集計されます。
使用する場合は、次のようにExcelのセルで ”=SUMIF(“ で始まる文字を入力すると、用法が画面上に表示されます(①②)。
実際にSUMIF関数を使ってみる
ここからは、実際にSUMIF関数を使ってみましょう。先に示した例は、家計簿のデータとして年月日、分類、品目、単価、個数、合計価格から成り、それぞれA〜F列に入力されています。
この例では、年月日別に合計を求めるためにSUMIF関数を使用します。
SUMIF関数の引数は、第1引数が検索条件の範囲なのでA列の2〜13行目を指定し、第2引数が検索条件なのでセルのH2の値である ”2024/9/10” を指定します。集計対象となる合計範囲はF列の2〜13行目を指定します。
この例では、日別にデータを作成しやすいように、範囲は ”A2:A13” ではなく ”A$2:A$13” として対象となる行を固定します。同様に合計範囲は ”F2:F13” ではなく ”F$2:F$13” を指定し、対象となる行を固定します。
列のデータ全てを集計対象の場合は、行を指定せずに記述することもできます。この例では、A列が年月日のデータのみで、F列が合計価格のみが入力されています。
そのため、 ”A$2:A$13” を ”A:A” とし、 ”F$2:F$13” を ”F:F” と記述して列全体を指定することもできます。次の例のように記述すると、集計結果は同じです(①②)。
以上の結果、I2のセルには ”2024/9/10” の合計736円が入りました。 ”2024/9/11” 以降については、I2のセル右下のつまみを下にドラッグして値をコピーします(①)。
選択したセルのつまみをI6のセルでドロップすると、次のように計算式がI列の2〜13全てに反映され、日別集計が完成します(②)。
SUMIF関数で複数条件を指定するには
SUMIF関数で複数条件を指定するには、SUMIFS関数を使用します。SUMIFSの最後のSはSUMIFの複数形であり、複数の条件設定を意味します。SUMIF関数は条件が1つのみでしたが、SUMIFS関数では1つ以上で最大127の条件を指定することができます。構文は次の通りです。
=SUMIFS(合計対象範囲, 条件範囲 1, 条件 1, [条件範囲 2, 条件 2], ...)
ここで示す合計対象範囲は、集計するセルの範囲で必ず指定する必要があります。範囲指定は、複数列を指定せず、列単位で行います。
SUMIF関数では第3引数に合計範囲が指定できますが、その合計範囲を第1引数に記述して使用する点が、SUMIF関数とSUMIFS関数の用法の違いです。SUMIF関数の項目をSUMIFS関数にそのまま置き換えるとエラーになります。引数の順番を間違えないように確認すると良いでしょう。
第2引数と第3引数は条件範囲と条件のセットです。条件範囲は条件が含まれるセルの範囲で、条件は数字や文字列、または条件の記載されているセルを指定します。
さらに追加条件がある場合は、第4引数と第5引数の組み合わせで指定し、複数の条件を記載していきます。2つや3つ以上の条件を指定した場合は、AND条件で集計されます。
【参照】:Microsoft サポート: SUMIFS 関数
実際にSUMIFS関数を使ってみる
ここでは、SUMIFS関数の実際の使い方を学びます。SUMIF関数で用いた家計簿のデータを使って集計を進めます。例示したシートにI列とJ列を追加し、分類別に ”果物” と ”飲料” の集計を行っていきます。
SUMIFS関数の第1引数が合計対象範囲で、F列価格の2〜13行目を指定します。第2引数が条件範囲でA列年月日の2〜13行目を指定します。第3引数が指定する年月日でH列のみを固定します。第4引数はB列の分類で2〜13行目を指定します。
最後の第5引数が分類で選択する値です。ここでは、I列の1行目に”果物”と入力しておき、1行目を固定しておきます。同様にJ列1行目に ”飲料” と入力しておきます。
“$” を使ってセルを固定する理由ですが、セルの数式をコピーする際に、I列の数式をJ列でも使用することが可能となり、最終的な作業を簡素化することができるためです。次のように、第3引数のセルの行と第5引数の列のみを可変にすることで入力内容を再利用することができます。
前述の通り列のデータ全てを集計できる場合は、行を指定せずに記述することもできます。この例で使用するA列が年月日のみで、B列が分類のみであり、F列が合計価格のみが入力されています。
そのため、 ”$A$2:$A$13” を ”$A:$A” 、 ”$B$2:$B$13” を ”$B:$B” とし、 ”$F$2:$F$13” を ”$F:$F” と記述して列全体を指定することもできます。
具体的には、次の例のように記述すると、同じ集計結果が得られます(①②)。
最初のセルの入力が完了したら、別のセルに内容をコピーしていきます。入力が完了したI2のセル右下のつまみを、下にドラッグして値をコピーします(①)。
続いて、選択しているセル右下のつまみをドラッグし、J列でドロップし、内容をコピーします(②)。
その結果、I2のセルに数式を入力するだけで、ドラッグ&ドロップ機能で ”果物” と ”飲料” の集計が完了します。
SUMIF関数でOR条件を設定するには
同じ列で複数の条件を設定するOR条件なども、複数条件に対応するSUMIFSを使用することができます。例示した家計簿のデータでは、C列にある ”バナナ” あるいは ”ビール” を集計する場合は、次のように波括弧で括って使用します。
=SUM(SUMIFS($F$2:$F$13,$A$2:$A$13,$H2,$C$2:$C$13,{"バナナ","ビール"}))
波括弧を使ったOR条件は、セルに値を入れることができないため、このように直接数式に引数として指定します。このほか、列単位でSUMIFS関数で集計した値を加算することで対応することもできます。
SUMIF関数の複数条件はSUMIFS関数を使いましょう
SUMIF関数は、1つの条件のみが指定できます。1つまたはそれ以上の条件が設定される可能性がある際には、あらかじめSUMIF関数で集計しておくと良いでしょう。将来的に複雑な集計が求められる場合は、SUMIF関数に複数条件を設定できるSUMIFS関数の活用をおすすめします。
マイナビエージェントに無料登録して
転職サポートを受ける
編集部オススメコンテンツ
アンドエンジニアへの取材依頼、情報提供などはこちらから