エクセルで曜日別に集計する方法|曜日ごとの合計・平均・土日と平日の売上をSUMIFSで出す【実機で解説】

エクセルで曜日別に集計する方法|曜日ごとの合計・平均・土日と平日の売上をSUMIFSで出す【実機で解説】

曜日ごとの合計は、日付の横に =TEXT(A2,"aaa") で曜日の列を作り、=SUMIFS(売上の列, 曜日の列, "月") で求めます。曜日の列さえあれば、あとは「月」「火」を条件にして合計するだけです。

この記事では、10 日分の売上の表を例に、曜日ごとの合計・平均、曜日の列を作らない式、土日と平日に分けた合計を、実際の Excel で確かめた結果で説明します。

練習用Excelファイル(無料ダウンロード)
日付と売上の表と、この記事の曜日別の集計の式をまとめた練習ファイルです。
Excelファイル(.xlsx)/登録不要/数式・練習データ入り
目次

曜日別に集計する式

=TEXT(日付, "aaa")
=SUMIFS(売上の列, 曜日の列, 曜日)
=AVERAGEIFS(売上の列, 曜日の列, 曜日)
=COUNTIFS(曜日の列, 曜日)
部品意味
TEXT(日付, “aaa”)日付から「月」「火」のような曜日の 1 文字を作る
売上の列合計・平均したい数値の列($B$2:$B$11)
曜日の列TEXT で作った曜日の列($C$2:$C$11)
曜日集計したい曜日(「月」と入れたセル、または “月”)

表の C 列には =TEXT(A2,"aaa") を入れて、下へコピーしてあります。2026/11/2 は月曜なので、C2 は「月」になります。TEXT で曜日を出す方法は 日付から曜日を取り出す方法で説明しています。

1. 曜日ごとの合計を出す(SUMIFS)

E2〜E8 に「月」〜「日」を入れておきます。I2 に式を入れて、下へ 7 行コピーします。売上の列と曜日の列は、コピーしてもずれないように $ で固定します。

=SUMIFS($B$2:$B$11,$C$2:$C$11,E2)
エクセルで曜日の列を条件にしてSUMIFS関数で曜日ごとの売上の合計を出した画面
エクセルで曜日の列を条件にしてSUMIFS関数で曜日ごとの売上の合計を出した画面

月曜は 56,000(11/2 の 30,000 と 11/9 の 26,000)、火曜は 42,000、水曜は 46,000 でした。1 回しかない木曜〜日曜は、その日の売上がそのまま出ます(土曜 45,000・日曜 40,000)。

2. 曜日ごとの平均を出す(AVERAGEIFS)

日数が曜日でちがうと、合計ではくらべにくくなります。SUMIFS を AVERAGEIFS に変えると、1 日あたりの平均が出ます。

=AVERAGEIFS($B$2:$B$11,$C$2:$C$11,E2)
エクセルでAVERAGEIFS関数を使って曜日ごとの売上の平均を出した画面
エクセルでAVERAGEIFS関数を使って曜日ごとの売上の平均を出した画面

月曜の平均は 28,000、火曜は 21,000、水曜は 23,000 でした。平均でくらべると、土曜(45,000)と日曜(40,000)が高いことが分かります。

曜日ごとの日数(件数)を数えたいときは、=COUNTIFS($C$2:$C$11,E2) と書きます。

3. 曜日の列を作らずに合計する(SUMPRODUCT)

表に曜日の列を足したくないときは、SUMPRODUCT の中で曜日を作ります。TEXT($A$2:$A$11,"aaa")=E2 で「その曜日の行か」を調べ、合う行の売上だけを足します。

=SUMPRODUCT((TEXT($A$2:$A$11,"aaa")=E2)*$B$2:$B$11)
エクセルでSUMPRODUCT関数とTEXT関数を使い曜日の列を作らずに曜日ごとの合計を出した画面
エクセルでSUMPRODUCT関数とTEXT関数を使い曜日の列を作らずに曜日ごとの合計を出した画面

月曜 56,000・火曜 42,000・水曜 46,000 で、1 の SUMIFS と同じ結果になりました。SUMPRODUCT の使い方は SUMPRODUCT関数の使い方で説明しています。

4. 土日と平日に分けて合計する(WEEKDAY)

WEEKDAY 関数の 2 つ目を 2 にすると、月曜が 1、土曜が 6、日曜が 7 になります。「6 以上」が土日、「5 以下」が平日です。

=SUMPRODUCT((WEEKDAY($A$2:$A$11,2)>=6)*$B$2:$B$11)
エクセルでSUMPRODUCT関数とWEEKDAY関数を使って土曜と日曜の売上の合計を出した画面
エクセルでSUMPRODUCT関数とWEEKDAY関数を使って土曜と日曜の売上の合計を出した画面

土日の合計は 85,000 でした(11/7 の 45,000 と 11/8 の 40,000)。平日は >=6 を <=5 に変えます(下の検証で確かめています)。WEEKDAY の番号は WEEKDAY関数の使い方で説明しています。

【実機で検証】曜日別の集計でつまずくところ

エクセルの曜日別の集計でWEEKDAYの種類や条件の文字や空欄の行を入れたときの結果を確かめた画面
エクセルの曜日別の集計でWEEKDAYの種類や条件の文字や空欄の行を入れたときの結果を確かめた画面
ためしたこと式結果
WEEKDAY の 2 つ目を省いたときの月曜(11/2)=WEEKDAY(曜日別集計!A2)2
2 つ目を 2 にしたときの月曜(11/2)=WEEKDAY(曜日別集計!A2,2)1
条件を「月曜日」にして合計=SUMIFS(曜日別集計!B2:B11,曜日別集計!C2:C11,"月曜日")0
空欄の 12 行目まで範囲に入れて土曜を数える=SUMPRODUCT((WEEKDAY(曜日別集計!A2:A12,2)=6)*1)2
表に無い曜日(「祝」)の平均=AVERAGEIFS(曜日別集計!B2:B11,曜日別集計!C2:C11,"祝")#DIV/0!
平日(月〜金)の合計=SUMPRODUCT((WEEKDAY(曜日別集計!A2:A11,2)<=5)*曜日別集計!B2:B11)194,000

WEEKDAY の 2 つ目を省くと、月曜の 11/2 は 2 になりました(日曜が 1 の数え方)。2 つ目を 2 にすると 1 です。土日を「6 以上」で見分けるときは、かならず 2 を付けます。

曜日の列が「月」なのに、条件を「月曜日」にすると合計は 0 になりました。TEXT の “aaa” は「月」、”aaaa” は「月曜日」です。列と条件の書き方をそろえます。

空欄の 12 行目まで範囲に入れて土曜を数えると 2 になりました。表の土曜は 11/7 の 1 日だけですが、空欄は土曜として数えられます。件数を数えるときは、範囲をデータのある行までにします。表に無い曜日の平均は #DIV/0!、平日の合計は 194,000 でした。

よくある質問

曜日別ではなく月別に集計したいときは?

日付の期間を条件にして SUMIFS で合計します。月別集計する方法で説明しています。

曜日を「月曜日」と表示して集計したいときは?

曜日の列を =TEXT(A2,"aaaa") にして、条件のセルも「月曜日」にそろえます。列と条件が同じ書き方なら、同じ式で集計できます。

祝日も土日と同じ休日として分けたいときは?

祝日の一覧を作って判定します。日付が平日か休日かを判定する方法で説明しています。

練習用Excelファイル(無料ダウンロード)
この記事の例をまとめた練習ファイルです。
Excelファイル(.xlsx)/登録不要/数式・練習データ入り

あわせて読みたい:関連記事

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次