いまさら聞けないExcelの使い方講座

【Excel】SUMIFのことは忘れてっ! 条件に合うデータのみの合算に使う関数はSUMIFS

SUMIFS関数は単一条件でも利用できます

これから覚えるならSUMIFS関数で決まり

 業務の内容を問わず、条件に一致するデータのみを合計したいことがありますよね。定番の関数は「SUMIF」と「SUMIFS」の2つです。SUMIFS関数は、Excel 2007で追加されており、現在ではすべての人が利用できると考えていいでしょう。

 どちらを使えばいいのかに悩みますが、条件がひとつの場合は「SUMIF」、条件が複数の場合は「SUMIFS」のような使い分けは不要。SUMIFS関数だけで事足ります。それぞれの構文を見てみましょう。

SUMIF関数の構文。引数[範囲]に指定したセル範囲から[検索条件]に一致するデータを探して[合計範囲]の数値を合計します
SUMIFS関数の構文。数値を合計するセル範囲を引数[合計対象範囲]に指定します。[条件範囲]に指定したセル範囲から[条件]に一致するデータを探します。[条件範囲]と[条件]はセットで127個まで指定可能です

 引数の順番に注目してください。SUMIF関数では、ひとつめの引数[範囲]は「検索するセル範囲」です。SUMIFS関数では、ひとつめの引数[合計対象範囲]は「合計するセル範囲」です。

 同じ動作をするのに引数の順番が違うのです。ひとつのシートにSUMIF関数とSUMIFS関数の両方を使っている場合、特に隣のセルに並んでいたりすると混乱しますよね。SUMIFS関数もひとつの条件で利用できるので、これから覚えるならSUMIFS関数のみでいいでしょう。

 実際にSUMIF関数とSUMIFS関数で同じ結果になるか確認してみます。以下はチケット販売の集計表です。『席が「S」なら』の条件で、売上金額を合計します。

SUMIF関数で条件を指定します。入力した数式は「=SUMIF(C2:C41,"S",F2:F41)」(①)です。
SUMIFS関数で条件を指定します。入力した数式は「=SUMIFS(F2:F41,C2:C41,"S")」(②)です。

 どちらも同じ結果になりました。指定できる条件は、SUMIF関数とSUMIFS関数で同じです。単純な文字列だけでなく、「等しい」(=)、「等しくない」(<>)、「以上」(>=)、「以下」(<=)、「より大きい」(>)、「より小さい」(<)といった比較演算子やワイルドカードの指定も可能です。今回は、SUMIFS関数の利用例をいくつか紹介します。

条件にセルの値を参照する

 先ほどの例では「"S"」と数式中に直接指定しましたが、実際にはセルに入力された値を条件として参照することが多いでしょう。ここでは条件をセルH2に入力して数式を書き換えてみます。セルH2の値を変更するだけで結果が切り替わります。例えば、販売店を対象に「新宿」と指定する場合も同様です。

セルH2には「S」と入力しています(③)。セルI2の数式を書き換えて「=SUMIFS(F2:F41,C2:C41,H2)」としました(④)
数式はそのまま、セルH2を「A」と入力(⑤)すると、結果が切り替わります

比較演算子を利用する

 条件式に比較演算子を利用してみます。数値はもちろん、日付にも比較演算子を利用可能です。ここで指定する条件は「>=2022/7/2」です。2022/7/2以降の売上金額を合計します。数式中に直接指定する場合は「=SUMIFS(F2:F41,A2:A41,">=2022/7/2")」となります。

条件式はセルH2に入力してあります(⑥)。数式は「=SUMIFS(F2:F41,A2:A41,H2)」(⑦)です

 「~でない」の条件を指定する場合は「<>」を利用します。例えば、銀座以外の販売店の売上金額を求めるときの条件式は「<>銀座」となります。

「~でない」の条件は「<>」を利用します(⑧)。数式は「=SUMIFS(F2:F41,B2:B41,H2)」(⑨)です

複数の条件を指定する

 今度は『席が「A」かつ「2022/7/2以降」』の条件を指定してみます。SUMIFS関数に指定する条件は「かつ」のAND条件になるので、指定する順番は意識する必要はありません。条件はセルH2とH3に入力しました。

条件式はセルH2とH3に入力してあります(⑩)。数式は「=SUMIFS(F2:F41,C2:C41,H2,A2:A41,H3)」(⑪)です

「または」の条件を指定する

 「または」の条件を指定するには工夫が必要です。例えば「SS」または「S」の売上金額を合計するにはどうしましょう? セルH2とH3に条件を入力して、数式を「=SUMIFS(F2:F41,C2:C41,H2,C2:C41,H3)」としても正しい結果は得られません。

「=SUMIFS(F2:F41,C2:C41,H2,C2:C41,H3)」(⑫)としても「0」になってしまいます

 前述の通り、SUMIFS関数で指定する条件は「かつ」のAND条件です。「または」のOR条件を指定したい場合は、SUMIFS関数の結果を足し算します。

SUMIFS関数の結果を足し算して「=SUMIFS(F2:F41,C2:C41,H2)+SUMIFS(F2:F41,C2:C41,H3)」(⑬)とします

ワイルドカードを利用する

 「*」や任意の1文字を意味する「?」は「ワイルドカード」と呼ばれます。曖昧な条件指定が可能になります。先ほどの『「SS」または「S」』の条件であれば「S*」と指定することも可能です。「S」から始まる任意の文字列が一致します。

ワイルドカードを利用して「=SUMIFS(F2:F41,C2:C41,H2)」(⑭)と入力しました。先ほどと同じ結果です

 このサンプルには「S」と「SS」しかありませんが、「S*」の条件には「SA」「SSS」なども該当するので、指定する際には注意が必要です。「S?」の場合は「SA」「SS」など「S」に続く任意の1文字が一致します。

SUMIF関数とSUMIFS関数で引数の順番に違いがある

 必ずSUMIF関数を利用しなければならない状況はありませんよね。複数の条件指定にも対応できるSUMIFS関数で十分ではないでしょうか。実際の業務で活用してみてください。