Excel SUMIFSで日時がある売上を日別集計|当日0時以上・翌日0時未満

VBA・Officeカテゴリを表すパンダのイラスト VBA・Office

この記事について
この記事は、生成AIを活用した自動生成フローで作成しています。Microsoft SupportのSUMIFSの構文と複数条件による合計を根拠にしています。日時の境界条件を使った日別集計例は、提示資料に記載がないため、以下の式と期待結果は実機で確認していません。

検証ステータス:spec_checked — SUMIFSの構文は公式情報で確認済みです。日時範囲を使った集計例は未実行です。

日時列の値に時刻が含まれていると、日付だけを条件にした完全一致では、同じ日の明細を集計できないことがあります。たとえば、集計対象セルが 2026/10/20 00:00 で、明細が 2026/10/20 09:15 なら、時刻部分が異なるため同じ値ではありません。

日別集計では、対象日の午前0時以上、翌日の午前0時未満を範囲として指定します。下限は含め、上限は含めない指定です。こうすれば対象日の最後の時刻までを範囲に含めながら、翌日0時ちょうどの明細を除外できます。

まずは4行の明細で試す

新しいシートに、次のダミー明細を入力します。A列に日時、B列に売上を置きます。D2には集計したい日付 2026/10/20 を入力してください。

A列:日時B列:売上
2026/10/20 00:00100
2026/10/20 09:15250
2026/10/20 23:59300
2026/10/21 00:00900

E2に次の式を入力します。

=SUMIFS($B$2:$B$5,$A$2:$A$5,">="&D2,$A$2:$A$5,"<"&D2+1)

期待例(未実行):E2は 650 になる想定です。10月20日の3行を合計し、10月21日0時の900は除外します。

SUMIFSは、指定した条件範囲のうち条件に合う行について、対応する合計範囲の値を合計する関数です。この式の第1引数 $B$2:$B$5 が合計範囲、第2引数 $A$2:$A$5 が条件範囲です。続く ">="&D2 と "<"&D2+1 が、その条件範囲に対する2つの条件です。

  • ">="&D2 は、D2の日付と同じ時刻、またはそれより後の値を対象にします。

  • "<"&D2+1 は、D2に1日を足した値より前を対象にします。

Excelでは日付と時刻を数値で扱い、時刻は1日の小数部分として表されます。そのため、D2が日付のみなら D2+1 は翌日の午前0時です。日付の翌日を上限にして < で比較すれば、23時台の値は含まれ、翌日0時ちょうどは含まれません。

数式中の & は、比較演算子とセルの値をつないで条件文字列を作ります。たとえばD2が10月20日なら、下限条件は「10月20日以上」、上限条件は「10月21日未満」となります。固定した範囲の $ は、式を別のセルへコピーしても参照先がずれないようにします。集計日をD2以外へコピーする表を作る場合は、日付セルの参照方法を目的に合わせて調整します。

時系列上で境界を読む

次の図は、10月20日の対象範囲と上限を示しています。翌日0時は前日分に含めない、という境界の考え方を確認できます。

flowchart LR
    A["10/20 00:00<br/>下限:含む"] --> B["10/20の日中<br/>対象範囲"] --> C["10/21 00:00<br/>上限:含まない"]

左端の時刻は対象に含み、右端の時刻は対象に含みません。図は集計範囲の境界を表したもので、明細がその範囲に入るかどうかは、A列の値がExcelで日付時刻として認識されていることが前提です。

完全一致の式と結果を比べる

同じ明細で、条件を日付の完全一致に変えた場合を比べます。

=SUMIFS($B$2:$B$5,$A$2:$A$5,D2)

この式はA列の値がD2と等しい行を探します。D2が10月20日午前0時なら、時刻付きの9時15分や23時59分は一致しません。上のダミー表での期待例(未実行)は、午前0時の行だけを合計した 100 です。一方、範囲条件の式では同日の3行を合計する想定で 650 です。

違いを確かめるときは、対象日の午前0時、日中、23時台に加えて、翌日午前0時の行も用意します。範囲条件の結果が「対象日の3行を含む」「翌日0時を含まない」の両方を満たすかを確認してください。行の数を増やす場合も、集計対象日以外の明細を1行追加して境界の判定を確かめると、上限条件の誤りに気づきやすくなります。

日付を変えてもう一度確認する

次はD2を 2026/10/21 に変更します。4行の例では、期待例(未実行)として翌日分の合計は 900 になります。これは、10月21日0時が新しい集計日の下限に含まれるためです。前日の上限として除外された同じ行が、翌日の集計では対象になることを確認できます。

この比較は、式が単に「時刻を無視している」のではなく、指定日の開始から翌日の開始までの区間を切り出していることを示します。日付セルを差し替えて結果を確認すれば、1日の境界が連続しているかを確かめられます。なお、D2に時刻まで入力すると開始位置が午前0時ではなくなります。日単位で集計するセルには日付だけを入力してください。

合計が合わないときは値の種類と範囲を見る

セルの表示が日時でも、値が文字列なら数値の日付範囲と期待どおり比較できない場合があります。表示形式だけでは判定できないため、別セルで =ISNUMBER(A2) を使い、A2が数値として認識されているか確認します。FALSEなら、CSV取り込み時の変換などを調べてください。変換が必要な場合は、元データを直接書き換えず、コピーした表で変換と集計結果を確かめると戻しやすくなります。

また、SUMIFSでは合計範囲と各条件範囲のサイズを揃えます。たとえば合計範囲がB2:B5なら、日時の条件範囲もA2:A5にします。範囲の開始行や終了行がずれていると、別の行の値を対応づけたり、意図しない範囲を集計したりする原因になります。

SUMIFSは合計範囲が第1引数です。SUMIFから式を変更する場合などは、引数の順番を取り違えていないか確認してください。条件を追加するときは「条件範囲、条件」の組を続けます。公式資料では最大127組の範囲と条件を指定できるとされていますが、日付以外の条件を増やす場合も、それぞれの範囲サイズを揃える必要があります。

日付入力は地域設定や入力方法の影響を受けることがあります。10/11/2026 のような解釈が曖昧な入力を避け、D2が意図した日付として認識されているか確認します。数式を貼り付けたときにエラーになる場合は、ブック内の既存数式で使われている引数区切り記号も確認してください。

業務の集計に使う前に

日次の売上報告で明細に時刻が含まれるなら、完全一致より当日以上・翌日未満の範囲条件が目的に合います。集計日をセル参照にしておけば、そのセルを変えて日別の結果を確認できます。担当者や商品などの条件を追加する場合は、その条件範囲と条件の組もSUMIFSに追加し、各範囲が同じ行に対応していることを確かめます。

締め処理では、集計値だけを見て判断せず、対象日で明細を絞り込んで行と金額を照合します。特に、日付が文字列になっていないか、翌日0時の行が前日に混ざっていないか、範囲の終端が同じ行まで届いているかを確認します。明細が多い場合や元データの形式が安定しない場合は、集計式を業務に組み込む前に、取り込み後の日時変換方法と照合手順も決めておく必要があります。

まとめ

日時付きの売上明細を日別に集計するには、SUMIFSで指定日の午前0時以上、翌日の午前0時未満を指定します。まずダミー明細で同日の時刻違いが合計され、翌日0時が除外されることを確認してください。実データに適用するときは、日時が数値として認識されているか、対象行と合計値が一致するかを照合してから締め処理に使います。

公式情報・一次情報

サンプルコード

実装 / READMEと実行手順

文書情報

記事タイトル
Excel SUMIFSで日時がある売上を日別集計|当日0時以上・翌日0時未満
作成日
更新日
Source URL
https://papanda925.com/?p=18166

ライセンス: 本記事のうち、当サイトが権利を有する本文・自作図表は、特記なき限り CC BY 4.0 で利用できます。生成AIを活用して作成・編集した内容を含みます。コードについて、別途ライセンス表示またはリンク先GitHubリポジトリのライセンスがある場合は、その条件を優先します。引用・第三者資料・画像・商標等は本ライセンスの対象外です。 利用ポリシー

タイトルとURLをコピーしました