SkillStack Lab 運営者の「スタック」です。
Excelで「4月1日のりんご」「4月2日のみかん」のように、日付と項目の2つの条件で売上や数量を集計したいことはありませんか。
日別かつ項目別に合計するなら、まず使いたいのがSUMIFS関数です。縦軸に日付、横軸に商品名を置けば、1つの数式を縦横へコピーしてクロス集計表を作れます。

この記事では、SUMIFSの基本だけでなく、日付×商品名の具体的な数式、期間集計、時刻が含まれる場合の対処、結果が0になる原因までまとめて解説します。
「SUMIFSの式は合っているはずなのに集計できない」という場合も、順番に確認すれば原因を切り分けられます。
- SUMIFS関数で日付と商品など複数条件を指定する方法
- 日付×項目のクロス集計表を1つの数式から作る方法
- 月別・期間別にSUMIFSで集計する方法
- 日付・時刻・文字列が原因で集計できない場合の確認方法
- SUMIFS・ピボットテーブル・動的配列の使い分け
エクセルで日別・項目別に集計するならSUMIFS関数を使う
日付と商品名など、複数の条件をすべて満たすデータだけを合計したい場合はSUMIFS関数が分かりやすい方法です。
例えば元データが次のようになっているとします。
| A列:日付 | B列:商品 | C列:売上 |
|---|---|---|
| 2026/4/1 | りんご | 1,000 |
| 2026/4/1 | みかん | 800 |
| 2026/4/2 | りんご | 1,200 |
別の集計表で、E列に日付、1行目に商品名を配置した場合、F2セルには次のような数式を入れます。
=SUMIFS($C$2:$C$1000,$A$2:$A$1000,$E2,$B$2:$B$1000,F$1)
これで「E2の日付」かつ「F1の商品」に一致する売上だけをC列から合計できます。
SUMIFS関数の基本構文

SUMIFS関数の基本構文は次のとおりです。
=SUMIFS(合計対象範囲,条件範囲1,条件1,[条件範囲2,条件2],…)
SUMIF関数との違いで迷いやすいのが、引数の順番です。
SUMIFSでは、最初に「何を合計するか」を指定し、その後へ条件範囲と条件を追加していきます。
- 合計対象範囲:合計したい売上・数量・金額など
- 条件範囲1:日付が入っている範囲
- 条件1:集計したい日付
- 条件範囲2:商品や担当者が入っている範囲
- 条件2:集計したい商品や担当者
Microsoftの案内では、SUMIFSには最大127組の範囲と条件を指定できます。店舗、担当者、部門など条件が増えた場合も、同じ考え方で追加できます。
複合参照を使えばクロス集計表へそのままコピーできる

日付を縦軸、商品を横軸にしたクロス集計表では、数式を1セルずつ作る必要はありません。
先ほどの数式では、次の2か所に複合参照を使っています。
=SUMIFS($C$2:$C$1000,$A$2:$A$1000,$E2,$B$2:$B$1000,F$1)
| 参照 | 意味 | コピーしたとき |
|---|---|---|
| A1 | 相対参照 | 行・列とも移動 |
| $A$1 | 絶対参照 | 行・列とも固定 |
| $A1 | 列固定 | A列は固定、行は移動 |
| A$1 | 行固定 | 1行目は固定、列は移動 |
$E2は日付が並ぶE列を固定し、F$1は商品名が並ぶ1行目を固定しています。
そのためF2セルへ数式を1つ作ったら、右と下へオートフィルするだけで、日付×商品の集計表へ展開できます。
Windows版Excelでは、数式編集中にF4キーを押すと参照方法を切り替えられます。キーボードによってはFnキーとの併用が必要です。
SUMIFSで日付範囲・月別の集計をする方法
1日だけでなく「4月1日から4月30日まで」のような期間を合計するときも、SUMIFSを使えます。

日付だけのデータなら開始日以上・終了日以下で集計する
開始日がE1、終了日がF1に入力されている場合は、次のように指定できます。
=SUMIFS($C$2:$C$1000,$A$2:$A$1000,">="&$E$1,$A$2:$A$1000,"<="&$F$1)
比較演算子の>=や<=はダブルクォーテーションで囲み、セル参照とは&でつなぎます。
時刻も含まれるなら「翌日未満」で指定する
元データが「2026/4/30 15:30」のような日時データの場合、終了条件を単純に「4月30日以下」とすると、4月30日の0時より後のデータを拾えないことがあります。
日時データを含む場合は、終了日以下ではなく「終了日の翌日未満」で指定すると安全です。
=SUMIFS($C$2:$C$1000,$A$2:$A$1000,">="&$E$1,$A$2:$A$1000,"<"&($F$1+1))
例えば終了日が4月30日なら、「5月1日より前」という条件になるため、4月30日の23時台まで含められます。
EOMONTH関数を使えば月末を自動で求められる
月別集計では、月によって28日・30日・31日と最終日が変わります。
E1セルへその月の日付を1つ入力している場合、EOMONTH関数を使えば月末を自動計算できます。
=EOMONTH(E1,0)
さらに日時データまで含めて1か月分を集計するなら、次のように「翌月1日未満」とする方法が分かりやすいです。
=SUMIFS($C$2:$C$1000,$A$2:$A$1000,">="&$E$1,$A$2:$A$1000,"<"&(EOMONTH($E$1,0)+1))
SUMIFSで集計できない・0になるときの原因
SUMIFSの式が正しそうなのに集計結果が0になる場合は、数式だけでなく元データの中身を確認します。

特に確認したいのは次の項目です。
- 日付が文字列になっていないか
- 日付に時刻が含まれていないか
- 売上や数量が文字列として保存されていないか
- 商品名や担当者名に余分な空白・表記ゆれがないか
- 合計範囲と条件範囲の行位置がそろっているか
元データは1行1件のリスト形式にする
SUMIFSそのものはセル結合や空白行があるだけで必ず計算できなくなるわけではありません。
ただし、今後ピボットテーブル、フィルター、Power Queryなどへ広げることを考えると、元データは1行1件・1列1項目でそろえておく方が扱いやすくなります。
- 入力データ内のセル結合は避ける
- 商品名と産地など別の情報を1セルへまとめない
- 元データ途中の小計行は避ける
- 「ABC」「ABC」などの表記をできるだけ統一する
日付が文字列になっていないか確認する

Excelでは日付を内部的にシリアル値として扱います。例えば、1900年日付システムでは「2024/1/1」は45292です。
しかし、見た目が「2024/1/1」でも、中身が文字列なら通常の日付値とは別に扱われます。
簡単に確認するなら、対象セルを選択してCtrl + 1を押し、表示形式を一時的に「標準」へ変更します。
- 日付セルを選択する
Ctrl + 1で「セルの書式設定」を開く- 表示形式を「標準」にする
- 45292などの数値になれば日付値として保存されていると判断できる
文字列の日付はDATEVALUE関数などで日付値へ変換できます。デスクトップ版Excelでは、データの内容によって「区切り位置」を利用して変換できる場合もあります。
日付に時刻が含まれていると完全一致しない

Excelでは時刻を1日の小数部分として保存します。
そのため、「2024/4/1」と「2024/4/1 10:00」は見た目が近くても内部の値は同じではありません。
対処方法は主に2つあります。
方法1:作業列でINT関数を使う
日時がA2セルにあるなら、作業列へ次の式を入れます。
=INT(A2)
時刻にあたる小数部分を除き、日付部分だけで比較できるようになります。
方法2:SUMIFSを「その日以上・翌日未満」にする
元データを変更したくない場合はこちらが便利です。
=SUMIFS($C$2:$C$1000,$A$2:$A$1000,">="&$E2,$A$2:$A$1000,"<"&($E2+1))
これならE2の日付の0時以上、翌日の0時未満をまとめて集計できます。
金額や数量が文字列として保存されていないか確認する
CSVや他システムから取り込んだデータでは、数字に見えても文字列として保存されている場合があります。
セル左上に緑色の三角形が表示され、「数値が文字列として保存されています」と警告されている場合は、警告メニューから「数値に変換する」を選べます。
別列で変換する場合はVALUE関数も利用できます。
=VALUE(C2)
商品コードや社員番号など、先頭の0に意味があるデータは安易に数値化しないでください。「00123」を数値へ変換すると「123」になります。
SUMIFS・ピボットテーブル・動的配列はどう使い分ける?
Excelの集計はSUMIFSだけが正解ではありません。
定型の集計表を作りたいのか、データをいろいろな角度から分析したいのかで使い分けます。
| 方法 | 向いている用途 | 特徴 |
|---|---|---|
| SUMIFS | 日報・月報・定型帳票 | 決めたセルへ結果を表示しやすい |
| ピボットテーブル | 商品別・店舗別などの分析 | 項目を入れ替えながら集計しやすい |
| UNIQUE・SORTなど | 集計軸となる一覧の自動生成 | 重複しない一覧を動的に展開できる |
| Power Query | 毎月同じCSVの結合・整形 | データ加工手順を再利用しやすい |
定型帳票ならSUMIFSが使いやすい
「このセルには4月の売上」「このセルにはA商品の合計」というように、完成形が決まっている帳票はSUMIFSと相性がよいです。
元データや条件セルを変更すると、通常の数式再計算によって結果も更新されます。
分析軸を頻繁に変えるならピボットテーブル
「商品別を見たあと店舗別でも確認したい」「月別から担当者別へ切り替えたい」といった分析では、ピボットテーブルが便利です。
ピボットテーブルは元データ変更後に更新が必要ですが、Excelでは手動更新のほか、ブックを開くときに更新する設定も用意されています。
更新作業そのものを減らしたい場合は、ピボットテーブルの更新を自動化する方法も確認してください。
Excel 2021・Microsoft 365ならUNIQUEやSORTも使える
Excel 2021やMicrosoft 365では、UNIQUEやSORTなどの動的配列関数を利用できます。
例えばA列の日付から重複を取り除き、日付順に並べるなら次の式です。
=SORT(UNIQUE(A2:A1000))
数式を1セルへ入力するだけで結果が複数セルへ展開されるため、日付や商品名の一覧を手入力する作業を減らせます。
条件に一致する元データそのものを抽出したい場合はFILTER関数も選択肢です。

毎月同じCSVを加工するならPower Queryも検討する
SUMIFSは「条件に合う数値を集計する」ことが得意ですが、毎月CSVを取り込み、不要列を削除し、データ型を直し、複数ファイルを結合するといった前処理まで数式で抱えると管理が複雑になります。
同じデータ整形を毎月繰り返している場合は、Power Queryの実務的な使い方も比較してみてください。
エクセルの日別・項目別集計でよくある質問
まとめ|日別・項目別の集計はSUMIFSから始めよう
Excelで「日付」と「商品」「担当者」「店舗」など複数条件を組み合わせて合計するなら、まずSUMIFS関数を使ってみてください。
- 日付×項目の集計はSUMIFS
- クロス集計では複合参照を使う
- 期間集計は開始日以上・終了日以下で指定する
- 日時データなら終了日の翌日未満で指定する
- 0になる場合は日付・時刻・文字列・表記ゆれを確認する
- 分析ならピボット、繰り返すデータ整形ならPower Queryも比較する
SUMIFSで解決できる作業もあれば、VBAやPower Queryなどへ進んだ方が楽になる作業もあります。
「このExcel作業はどこまで関数でやるべきか」と迷った場合は、用途別に自動化方法を整理した記事も参考にしてください。
