エクセルで時間帯別に集計する方法|1時間ごとの件数・合計・午前と午後をCOUNTIFSで出す【実機で解説】

エクセルで時間帯別に集計する方法|1時間ごとの件数・合計・午前と午後をCOUNTIFSで出す【実機で解説】

時間帯ごとの件数は、=COUNTIFS(時刻の列,">="&開始の時刻,時刻の列,"<"&終了の時刻) で求めます。「9:00 以上」と「12:00 未満」の 2 つの条件を並べて、その間の時刻を数えます。

この記事では、時刻と金額の表を例に、時間帯ごとの件数・合計、1 時間ごとの件数、午前と午後に分けた合計を、実際の Excel で確かめた結果で説明します。

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

時間帯別に集計する式

=COUNTIFS(時刻の列, ">="&開始, 時刻の列, "<"&終了)
=SUMIFS(金額の列, 時刻の列, ">="&開始, 時刻の列, "<"&終了)
=HOUR(時刻)
部品意味
時刻の列時刻が入っている列($A$2:$A$9)
“>=”&開始開始の時刻以上。開始は 9:00 と入れたセル、または TIME(9,0,0)
“<“&終了終了の時刻より前(未満)。終了は 12:00 と入れたセル、または TIME(12,0,0)
金額の列合計したい数値の列($B$2:$B$9)
HOUR(時刻)時刻から「時」だけを取り出す。9:15 なら 9

終了の側を「未満(<)」にするのが大事な点です。「以下(<=)」にすると、12:00 ちょうどのデータが 2 つの時間帯の両方に数えられます。

1. 時間帯ごとの件数を数える(COUNTIFS)

D 列に開始、E 列に終了の時刻を入れておきます(9:00〜12:00、12:00〜15:00、15:00〜18:00)。I2 に式を入れて、下へ 3 行コピーします。

=COUNTIFS($A$2:$A$9,">="&D2,$A$2:$A$9,"<"&E2)
エクセルでCOUNTIFS関数に開始以上と終了未満の2つの条件を入れて時間帯ごとの件数を数えた画面
エクセルでCOUNTIFS関数に開始以上と終了未満の2つの条件を入れて時間帯ごとの件数を数えた画面

9:00〜12:00 は 4 件、12:00〜15:00 は 2 件、15:00〜18:00 は 2 件でした。12:00 ちょうどのデータは、12:00〜15:00 の側に入っています。COUNTIFS の使い方は COUNTIFS関数の使い方で説明しています。

2. 時間帯ごとの合計を出す(SUMIFS)

件数ではなく金額を合計したいときは、SUMIFS にして、最初に合計する列(金額)を入れます。条件の書き方は 1 と同じです。

=SUMIFS($B$2:$B$9,$A$2:$A$9,">="&D2,$A$2:$A$9,"<"&E2)
エクセルでSUMIFS関数に開始以上と終了未満の条件を入れて時間帯ごとの金額の合計を出した画面
エクセルでSUMIFS関数に開始以上と終了未満の条件を入れて時間帯ごとの金額の合計を出した画面

9:00〜12:00 は 4,100、12:00〜15:00 は 2,900、15:00〜18:00 は 2,600 でした。

3. 1時間ごとの件数を数える(HOUR)

1 時間ごとに数えるときは、HOUR 関数で時刻から「時」を取り出します。D12〜D20 に 9〜17 を入れておき、「時」が同じ行を SUMPRODUCT で数えます。

=SUMPRODUCT((HOUR($A$2:$A$9)=D12)*1)
エクセルでHOUR関数とSUMPRODUCT関数を使って9時台から17時台まで1時間ごとの件数を数えた画面
エクセルでHOUR関数とSUMPRODUCT関数を使って9時台から17時台まで1時間ごとの件数を数えた画面

9 時台は 2 件、10 時台は 1 件、データの無い 14 時台は 0 件でした。件数ではなく合計にするときは、最後の *1 を *$B$2:$B$9 に変えます。HOUR の使い方は HOUR関数の使い方で説明しています。

4. 午前と午後に分けて合計する

午前は「12:00 より前」、午後は「12:00 以上」です。式の中に時刻を書くときは、TIME(12,0,0) を使います。

=SUMIFS($B$2:$B$9,$A$2:$A$9,"<"&TIME(12,0,0))
エクセルでSUMIFS関数の条件を12時より前にして午前の金額の合計を出した画面
エクセルでSUMIFS関数の条件を12時より前にして午前の金額の合計を出した画面

午前の合計は 4,100 でした。午後は "<" を ">=" に変えます(下の検証で確かめています)。TIME の使い方は TIME関数の使い方で説明しています。

【実機で検証】時間帯別の集計でつまずくところ

エクセルの時間帯別の集計で日付つきの日時やMODや終了の条件を変えたときの結果を確かめた画面
エクセルの時間帯別の集計で日付つきの日時やMODや終了の条件を変えたときの結果を確かめた画面
ためしたこと式結果
日付つきの日時のまま 9:00〜12:00 を数える=COUNTIFS(A12:A14,">="&TIME(9,0,0),A12:A14,"<"&TIME(12,0,0))0
MOD(日時,1) で時刻だけにして数える=SUMPRODUCT((MOD(A12:A14,1)>=TIME(9,0,0))*(MOD(A12:A14,1)<TIME(12,0,0)))2
日時のまま HOUR で 9〜11 時台を数える=SUMPRODUCT((HOUR(A12:A14)>=9)*(HOUR(A12:A14)<12))2
終了を「<=12:00」にして 9:00〜12:00 を数える=COUNTIFS(時間帯別集計!A2:A9,">="&TIME(9,0,0),時間帯別集計!A2:A9,"<="&TIME(12,0,0))5
条件を “>=9:00” のように文字で書く=COUNTIFS(時間帯別集計!A2:A9,">=9:00",時間帯別集計!A2:A9,"<12:00")4
午後(12:00 以上)の合計=SUMIFS(時間帯別集計!B2:B9,時間帯別集計!A2:A9,">="&TIME(12,0,0))5,500

日付つきの日時(2026/11/2 9:30 など)をそのまま COUNTIFS で数えると 0 件になりました。日時は「日付+時刻」の大きな数なので、9:00〜12:00 の条件に合いません。

MOD(日時,1) で時刻の部分だけにすると 2 件と数えられました(9:30 と 10:15)。HOUR は日時のままでも「時」を取り出せるので、2 件と同じ結果です。COUNTIFS の中では MOD を使えないため、日時の表では SUMPRODUCT で書くか、となりの列に =MOD(A2,1) を作ってから COUNTIFS で数えます。

終了を「<=12:00」にすると、9:00〜12:00 は 5 件になり、12:00 ちょうどのデータも入りました。次の時間帯と二重に数えないよう、終了は「<」にします。条件を ">=9:00" のように文字で書いても 4 件と数えられました。午後の合計は 5,500 です。

よくある質問

30分ごと・15分ごとに集計したいときは?

開始と終了のセルを 9:00・9:30・10:00 のように細かくすれば、同じ COUNTIFS の式で数えられます。時刻を 15 分単位に切り捨ててそろえる方法は FLOOR.MATH関数の使い方で説明しています。

時刻から時・分を別々に取り出したいときは?

HOUR・MINUTE・SECOND 関数を使います。時刻から時・分・秒を別々に取り出す方法で説明しています。

時間帯ではなく月別に集計したいときは?

日付の期間を条件にして SUMIFS で合計します。時刻つきの日付の扱いもふくめて、月別集計する方法で説明しています。

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

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

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

この記事を書いた人

目次