SUMIF関数で曜日別の集計をする|条件指定のポイント
ここでは、ExcelのSUMIF関数で曜日別の集計をする方法を解説します。
曜日ごとの集計、条件指定でのポイントの説明です。
1.まずは曜日の表示のさせ方を把握する
SUMIF関数で曜日を条件に指定するためには、まず曜日をどのように表示させているかを把握する必要があります。
なぜならエクセルでは曜日の表示のさせ方にいくつかの方法があり、「見た目は曜日でも実際のセルの値は異なる」からです。
では最初に、Excelでの曜日の表示のさせ方を順に見てみましょう。
1-1.値が文字列の場合
まずは、シンプルに「文字列で曜日を入力する」方法があります。
例えば上のようにセルに「月」と入力することで、曜日を表示させる方法のことです。
この場合には、見た目とセルの値が一致します。
1-2.値が日付の場合
次に、「値は日付、表示形式で見た目を曜日にする」方法があります。
例えば、上のようにセルに「2020/9/1」と入力し、表示形式のユーザー定義で「aaa」と指定することで、見た目を曜日にできます。
この場合には見た目と値が一致せず、条件値を「火」などの文字列で指定するとFALSE(偽)となります。
1-3.値が数値の場合
次に、「値は数値、表示形式で見た目を曜日にする」方法があります。
例えば、上のようにセルに「=WEEKDAY(44075,1)」と入力し、表示形式のユーザー定義で「aaa」と指定することで、見た目を曜日にできます。
WEEKDAY関数は日付の値(シリアル値)を 数値に変換することが出来る関数で、やはり表示形式を「aaa」にしたとき、1は日曜、2は月曜…と表示できるのです。
この場合にも見た目と値が一致せず、条件値を「火」などの文字列で指定するとFALSE(偽)となります。
1-4.表示方法のまとめ
このようにエクセルでは、見た目が曜日でも「文字列の場合」と「日付の場合」、「数値の場合」の3パターンがあります。
そして、文字列の時以外は条件値を曜日にしても絶対に一致しないので、注意が必要です。
2.パターン別 条件指定の方法
表示のさせ方が3つあることを踏まえて、曜日のパターン別にSUMIF関数の条件指定の方法です。
2-1.値が文字列の場合
値が文字列の場合には、見た目と値が一致しているので条件指定の仕方は簡単です。
「条件値で曜日を指定」すればいいのです。
例えば、セルD1にはSUMIF関数で「セルA1からA7が『火』だった場合にセルB1からB7の値を合計する」数式、
=SUMIF(A1:A7,"火",B1:B7)
を入力しました。
結果、セルD1の値は11となり、条件値を「"火"」とそのまま指定することで、数式がしっかりと機能していることが分かります。
このように曜日の表示のさせ方が「文字列」の場合には、条件値も文字列にしましょう。
2-2.値が日付の場合
反対に日付で曜日を表示させている場合には、ちょっと厄介です。
なぜなら、先ほどのように分かりやすく文字列で曜日を条件にすることが出来ないからです。
そこで、このケースでは「SUMPRODUCT関数とTEXT関数」を使います。
SUMPRODUCT関数はSUMIF関数と同じように「条件に合う行の数を合計できる」のですが、条件指定の書き方がちょっと異なります。
例えばセルD1には、SUMPRODUCT関数とTEXT関数で「セルA1からA7が『火』だった場合にセルB1からB7の値を合計する」数式、
=SUMPRODUCT((TEXT(A1:A7,"aaa")="火")*(B1:B7))
を入力しました。
結果、セルD1の値は11となり、SUMPRODUCT関数とTEXT関数を使うことで、条件式がしっかりと機能していることが分かります。
ポイントは「TEXT関数でSUMIF関数でいう『範囲』と表示形式『aaa』を指定し、それにカッコで囲んだ『合計範囲』を掛ける」ことです。
このように曜日の表示のさせ方が「日付」の場合には、SUMPRODUCT関数とTEXT関数を使うようにしましょう。
2-3.値が数値の場合
続いて、数値で曜日を表示させている場合にも、分かりやすく文字列で曜日を条件にすることが出来ません。
この場合にも、先ほどと同じように「SUMPRODUCT関数とTEXT関数」を使います。
例えばセルD1には、SUMPRODUCT関数とTEXT関数で「セルA1からA7が『火』だった場合にセルB1からB7の値を合計する」数式、
=SUMPRODUCT((TEXT(A1:A7,"aaa")="火")*(B1:B7))
を入力しました。
結果、セルD1の値は11となり、SUMPRODUCT関数とTEXT関数を使うことで、条件式がしっかりと機能していることが分かります。
ポイントはやはり「TEXT関数でSUMIF関数でいう『範囲』と表示形式『aaa』を指定し、それにカッコで囲んだ『合計範囲』を掛ける」ことです。
このように曜日の表示のさせ方が「数値」の場合にも、SUMPRODUCT関数とTEXT関数を使うようにしましょう。
以上参考になれば幸いです。
【口コミ・評判のいいExcel本の紹介】
SUMIF関数に関連したページは、次の通りです。
- SUMIF関数 各ページへのリンクはこちら
- ◎基本的な使い方
- ◎合計を別シートに表示させる方法
- ◎合計を別ファイルに表示させる方法
- ◎#VALUE!エラーの原因と対処方法
- ◎うまくいかない、0になる原因と対処法
- ◎曜日の条件指定がうまくいかず合計できない
- ◎空白以外を条件に合計する数式の書き方