日付で集計する|使う関数の選び方と、つまずく場所

執筆者:

カテゴリ:

日付で集計するのイメージ

目的別

日付で集計する

Excel関数辞典

日付で集計するとき、使える関数は複数あります。どれを選ぶかは、やりたいことの条件で決まります。

先に決めること。 期間で絞った集計を、月が変わっても直さずに済む形にしたいか。ここが決まれば、関数は1つに絞れます。

記載内容は 2026年8月時点のものです。ExcelとGoogleスプレッドシートで使える関数が違う場合があります。


日付で集計するの記事構成図
日付で集計する:この記事で扱う内容
このページの中身(26項目)
  1. 場面別・使う関数の早見
  2. 1. 特定の月
  3. 2. 今月
  4. 3. 年度
  5. 4. 曜日別
  6. 5. 経過日数
  7. 6. 営業日
  8. 選び方の順番
  9. この記事で使っている言葉
  10. SUMIFSの応用
  11. 実際にあった相談と、その原因
  12. 数式を使わないという選択
  13. よく組む形をそのまま貼る
  14. SUMIFSを身につける順序
  15. SUMIFSと似た関数の違い
  16. 数式の前に、データを整える
  17. エラーが出たときの読み方
  18. ExcelとGoogleスプレッドシートの違い
  19. 数が増えて重くなったとき
  20. 引き継ぐときに書いておくこと
  21. よくある間違い
  22. 書いたあとの確認
  23. 数式の読み解き方
  24. 実務で使う場面
  25. SUMIFSについてよくある質問
  26. この分野の他の記事

場面別・使う関数の早見

日付は数値として扱われるため、比較演算子がそのまま使えます。文字列になっていると全部失敗します。

やりたいこと使う関数
特定の月SUMIFS
今月EOMONTH
年度DATE
曜日別WEEKDAY
経過日数DATEDIF
営業日NETWORKDAYS

表の使い方

左の列で自分のやりたいことを探し、右の関数の記事に進んでください。複数に当てはまる場合は、条件が多いほうを選んでください。条件が少ない関数で書くと、後から条件を足せません。

1. 特定の月

使うのは SUMIFS です。

特定の月という条件に、最も素直に対応する関数です。

つまずきやすいところ

範囲の行数が揃っているか、参照を固定したか。この2つで、結果がずれる原因の大半が説明できます。

この場面で確認すること

参照する範囲に、集計対象外の行が混ざっていないかを確認してください。

日付で集計するの要点図
日付で集計する

2. 今月

使うのは EOMONTH です。

今月という条件に、最も素直に対応する関数です。

つまずきやすいところ

範囲の行数が揃っているか、参照を固定したか。この2つで、結果がずれる原因の大半が説明できます。

この場面で確認すること

参照する範囲に、集計対象外の行が混ざっていないかを確認してください。

3. 年度

使うのは DATE です。

=DATE(年, 月, 日)

年月日から日付を作る関数です。日付を作る場面で使います。

つまずきやすいところ

月に13以上を渡すと翌年に繰り上がります。これは仕様で、月末計算に使えます。

この場面で確認すること

参照する範囲に、集計対象外の行が混ざっていないかを確認してください。

4. 曜日別

使うのは WEEKDAY です。

曜日別という条件に、最も素直に対応する関数です。

つまずきやすいところ

範囲の行数が揃っているか、参照を固定したか。この2つで、結果がずれる原因の大半が説明できます。

この場面で確認すること

参照する範囲に、集計対象外の行が混ざっていないかを確認してください。

5. 経過日数

使うのは DATEDIF です。

経過日数という条件に、最も素直に対応する関数です。

つまずきやすいところ

範囲の行数が揃っているか、参照を固定したか。この2つで、結果がずれる原因の大半が説明できます。

この場面で確認すること

参照する範囲に、集計対象外の行が混ざっていないかを確認してください。

6. 営業日

使うのは NETWORKDAYS です。

=NETWORKDAYS(開始日, 終了日, [祝日])

2つの日付の間の営業日数を数える関数です。営業日数を数える場面で使います。

つまずきやすいところ

開始日と終了日の両方が含まれます。片方を除くなら1を引いてください。

この場面で確認すること

参照する範囲に、集計対象外の行が混ざっていないかを確認してください。

選び方の順番

期間で絞った集計を、月が変わっても直さずに済む形にしたいか。この一点が決まらないまま関数を探すと、どれも当てはまるように見えて決まりません。

1. 出したい結果を一文で書く

「何を、どの条件で、どんな形で出したいか」。この一文が書ければ、関数はほぼ決まります。

2. 条件の数を数える

条件が1つか、複数か。ここで使える関数が分かれます。将来増える可能性があるなら、最初から複数条件に対応する形にしてください。

3. 返したい値の形を決める

1つの値か、複数行か。複数行を返す関数は、展開先を空けておく必要があります。

4. 共有先の環境を確認する

新しい関数を使うと、古い環境では #NAME? になります。社外に渡すファイルでは、この一点で選択肢が変わります。

5. 短く書けるほうを選ぶ

同じ結果を出せる関数が複数あるなら、短いほうにしてください。後から読むときの負担が違います。

この記事で使っている言葉

先に言葉の定義を揃えておきます。

引数

関数の括弧の中に渡す値のことです。SUMIFSでは =SUMIFS(...) の括弧内が引数にあたります。順番に意味があるため、位置を入れ替えると結果が変わります。

範囲

A2:A100 のように、複数のセルをまとめて指定したものです。行数が揃っていないと、複数の範囲を渡す関数では結果が狂います。

絶対参照と相対参照

絶対参照は $A$2 の形です。コピーしても参照先が変わりません。A2 は相対参照で、コピーした方向に応じてずれます。この使い分けが、結果がずれる原因の大半を占めます。

配列

1つの数式が複数の値を返す形です。返した先のセルが埋まっていると展開できず、エラーになります。

揮発性

関係のない編集でも再計算される性質です。NOW TODAY INDIRECT OFFSET が該当します。多用するとファイル全体が重くなります。

値として貼り付ける

数式ではなく計算結果だけを残す操作です。参照元を消しても壊れなくなり、再計算の対象からも外れます。

作業列

途中の計算結果を置くための列です。短く分けて書くほうが、後から読むときの負担も小さくなります。完成後に非表示にすれば、見た目は変わりません。

SUMIFSの応用

基本形で足りない場面のための書き方です。

さらに複雑にする前に

入れ子が3段を超えたら、作業列に分けてください。1つの数式にまとめることに価値はありません。後から読める形のほうが、結果的に速く終わります。

応用が必要かどうかの判断

他の人が触る表では、短い数式を並べるほうが保守できます。

実際にあった相談と、その原因

相談の内容から、どこを見るべきかを判断する例です。

「昨日まで動いていた数式が壊れた」

参照先の表で、列が挿入されたか削除されたかのどちらかです。列番号を数字で書いている数式は、参照先の構造が変わると意味が変わります。一時的な対処と恒久対処を分けてください。後者は位置に依存しない書き方です。

「合計が1円合わない」

丸めの位置が揃っていません。表示形式で小数を隠しても、値そのものは丸められません。行ごとに丸めるのか、合計してから丸めるのかで結果が変わります。各行で丸めるか、合計してから丸めるかで結果が変わります。

「一部の行だけ結果がおかしい」

その行のデータだけ型が違うか、余分な空白が入っています。型と文字数を出して、正しく動く行との差を探してください。

「下にコピーすると値が変わる」

参照を固定していません。動いてはいけない範囲に $ を付けてください。上の数行は正しく動くため、気づくのが遅れます。

「共有したら相手の画面でエラーになる」

SUMIFSや組み合わせている関数が、相手の環境で使えません。#NAME? が出ている場合はこれです。対応範囲の広い書き方に変えるか、値として渡してください。

「重くて開けない」

列全体の指定と、揮発性の関数が原因のことがほとんどです。範囲を区切り、確定した期間は値に変換してください。

数式を使わないという選択

SUMIFSを使う前に、別の手段で足りないかを確認してください。

ピボットテーブルで足りる場合

集計の軸が決まっているなら、集計機能のほうが速く、保守も簡単です。数式で組む理由がないか、一度確認してください。

フィルタで足りる場合

一時的に絞り込んで見るだけなら、フィルタ機能で十分です。ただし共有中のファイルでは、他の人の表示にも影響します。そこが問題になる場合だけ、関数で抽出してください。

条件付き書式で足りる場合

色を付けたいだけなら、列を増やす必要はありません。ただし範囲が広いほど負荷になるため、必要な範囲に絞ってください。

入力規則で防げる場合

誤りを後から探すより、入力の段階で防ぐほうが手間がかかりません。選択肢を決められる項目は、プルダウンにしてください。

手作業のほうが早い場合

一度きりの作業で、行数が少ないなら、手で直すほうが早いことがあります。繰り返す作業かどうかで判断してください。

それでも数式を使う理由

元データが更新される表では、数式が最も確実です。手作業は、更新のたびに同じ手間がかかり、抜けも起きます。

よく組む形をそのまま貼る

SUMIFSは単体より、組み合わせた形で使うことがほとんどです。

空欄なら計算しない

=IF($A2="", "", SUMIFS(...))

未入力の行に0やエラーが並ぶのを防ぎます。集計表では必ず入れてください。

エラーを空欄にする

=IFERROR(SUMIFS(...), "")

配布用の表を整える段階で使います。原因を追っている間は外してください。

エラーに文言を出す

=IFERROR(SUMIFS(...), "要確認")

空欄より実務では役に立ちます。後からフィルタで抽出できるためです。

条件で使い分ける

=IF($B2="対象", SUMIFS(...), 0)

対象外の行を0にする形です。合計に含めたくない行がある場合に使います。

EOMONTH と組み合わせる

=EOMONTH(SUMIFS(...))

内側から評価されます。3段以上の入れ子になったら作業列に分けてください。

結果を丸める

=ROUND(SUMIFS(...), 0)

小数の誤差を残したまま集計すると、合計が1円ずれます。丸める位置を決めてください。

貼るときの注意

... の部分は、この記事の実例から自分の表に合う形を選んで置き換えてください。参照を固定するかどうかは、コピーする方向で決まります。下方向なら行、右方向なら列を固定するかを先に判断してください。

SUMIFSを身につける順序

全部を理解してから使おうとすると、いつまでも使えません。

まず、基本形1つだけ

=SUMIFS(...)

特定の月形です。まずこれだけを覚えてください。実務で使う場面の大半はこの形で足ります。

次に、参照の固定

下方向にコピーしたときに、動いてよい参照と動いてはいけない参照を区別します。ここを理解すると、コピーで結果が狂うことがなくなります。

次に、エラーの扱い

=IFERROR(SUMIFS(...),"") の形です。配布する表では必要になります。ただし原因を追う段階では外してください。

次に、組み合わせ

EOMONTH など、目的の近い関数と組み合わせる形です。ここまで来ると、たいていの要望に応えられます。

最後に、代替手段

SUMIFS以外の書き方も知っておくと、環境が変わったときに困りません。相手の環境で使えない関数があっても、代替を提示できるようになります。

覚えなくてよいこと

すべての引数を暗記する必要はありません。書き始めれば候補が出ます。覚えるべきなのは、何ができる関数かという一点だけです。

SUMIFSと似た関数の違い

似た関数との差は、実際に使う場面で決まります。

SUMIFS と EOMONTH

SUMIFSは日付で集計する関数です。EOMONTHとは、扱えるデータの形か、返す値の種類が違います。

将来条件が増える可能性があるなら、拡張できるほうを選んでください。

SUMIFS と DATE

SUMIFSは日付で集計する関数です。DATEとは、扱えるデータの形か、返す値の種類が違います。

将来条件が増える可能性があるなら、拡張できるほうを選んでください。

SUMIFS と WEEKDAY

SUMIFSは日付で集計する関数です。WEEKDAYとは、扱えるデータの形か、返す値の種類が違います。

将来条件が増える可能性があるなら、拡張できるほうを選んでください。

判断の基準

  1. 出したい結果を一文で書く
  2. 条件の数を数える
  3. 返したい値が1つか複数かを決める
  4. 共有先の環境を確認する
  5. 短く書けるほうを選ぶ

この順で考えれば、関数は1つに絞れます。関数の一覧を眺めて選ぼうとすると、どれも当てはまるように見えて決まりません。

数式の前に、データを整える

数式が正しくても、データが揃っていなければ結果は合いません。

型を揃える

=ISNUMBER(A2)

数値として入っているかを判定します。見た目が数字でも文字列なら FALSE になります。システムから書き出したデータでは、これが原因のことが多くあります。

前後の空白を落とす

=TRIM(A2)

前後の空白と、語間の連続した空白を1つに詰めます。見た目では判別できないため、検索や集計が合わない原因になります。

全角と半角を揃える

=ASC(A2)

全角の英数字と記号を半角にします。逆方向は JIS です。手入力が混じる列では、この差が原因になりがちです。

改行を取り除く

=SUBSTITUTE(A2,CHAR(10),"")

セル内改行はコピー時に紛れ込みます。CHAR(10) が改行文字です。

文字数を比べて確認する

=LEN(A2)&" / "&LEN(B2)

見た目が同じなのに一致しないとき、まずこれを見ます。数が違えば、空白か不可視文字が入っています。

掃除は作業列にまとめる

数式の中に掃除を書き込むと、長くなって読めなくなります。掃除済みの値を作業列に出し、そこを参照する形にしてください。元データを直接書き換えないので、後から検証できます。

エラーが出たときの読み方

表示されている記号によって、見るべき場所が変わります。

記号意味最初に見るところ
#N/A検索した値が見つからない前後の空白、全角半角、型のずれ。この3つを順に確認してください
#REF!参照先が消えている参照していた行や列を削除していないかを確認してください
#VALUE!引数の型が合っていない数値を渡すべきところに文字列が入っていないかを確認してください
#DIV/0!0で割っている割る側が0または空欄になっていないかを確認してください
#NAME?関数名が認識されていない綴りの誤りか、その環境で使えない関数かを確認してください
#NUM!数値として扱えない指定した順位や桁数が範囲を超えていないかを確認してください

#N/A が出た場合

検索した値が見つからない状態です。前後の空白、全角半角、型のずれ。この3つを順に確認してください。

同じ数式でも、参照先が変わればこのエラーは出ます。

#REF! が出た場合

参照先が消えている状態です。参照していた行や列を削除していないかを確認してください。

同じ数式でも、参照先が変わればこのエラーは出ます。

#VALUE! が出た場合

引数の型が合っていない状態です。数値を渡すべきところに文字列が入っていないかを確認してください。

同じ数式でも、参照先が変わればこのエラーは出ます。

#DIV/0! が出た場合

0で割っている状態です。割る側が0または空欄になっていないかを確認してください。

同じ数式でも、参照先が変わればこのエラーは出ます。

エラーを隠すべきかどうか

IFERROR で包めば表示は消えますが、原因も見えなくなります。原因を追っている段階では外してください。配布用の表に仕上げる段階になってから包むのが正しい順序です。

ExcelとGoogleスプレッドシートの違い

SUMIFS自体は共通ですが、組み合わせる関数に差が出ることがあります。

使える関数が違う

FILTER UNIQUE SORT などは、Excelでは比較的新しい機能です。古い環境で開くと #NAME? になります。社外に渡すファイルでは、この点だけで使う関数が変わります。

配列の扱いが違う

スプレッドシートでは ARRAYFORMULA を使って一気に展開するのが定石です。Excelでは自動的に広がる仕様になっています。同じ結果を出す書き方が違うため、そのまま移すと動きません。

引数の区切りが違うことがある

地域の設定によって、区切りがカンマではなくセミコロンになる環境があります。コピーした数式が動かない場合、ここを疑ってください。

日付の基準が違う

日付を数値で持つ点は共通ですが、起点の日が違う設定が存在します。ファイルをまたいで日付を計算するときは注意してください。

どちらで作るか

共有先が決まっていないなら、対応範囲の広い書き方を選んでください。後から書き換えるより、最初から限定するほうが手戻りが少なくなります。

数が増えて重くなったとき

重くなる原因は限られています。上から順に確認してください。

範囲を列全体で指定しない

A:A は書くのが楽ですが、空行まで対象に含めます。$A$2:$A$5000 のように行を区切ってください。行数が多いほど差が出ます。

同じ計算を繰り返さない

同じ引数でSUMIFSを何度も書いているなら、作業列に一度だけ出して、他はその列を参照させてください。

揮発性の関数を減らす

無関係なセルを触っただけで再計算が走る関数があります。NOW TODAY INDIRECT OFFSET です。多用すると、ファイル全体が重くなります。

確定した部分は値にする

締めた期間の集計は、値貼り付けにしてください。数式が残っている限り、再計算の対象になり続けます。

条件付き書式を減らす

数式を使った条件付き書式は、範囲が広いほど負荷になります。必要な範囲だけに絞ってください。

引き継ぐときに書いておくこと

数式は動いていても、意図は残りません。渡す前に、次の点をシート内にメモしてください。3分で終わります。

何を出している数式か

SUMIFSで日付で集計するという意図を、一行で書いてください。読めば分かると思っても、数か月後の自分には分かりません。

どの表を参照しているか

参照先のシート名と、その表の更新担当。参照先が別ファイルなら、その場所も書いてください。

該当しないときの扱い

空欄にしているのか、文言を出しているのか、エラーのまま残しているのか。書いていないと、受け取った側は空欄をデータなしと読みます。

触ってはいけない場所

範囲の行数が揃っているか、参照を固定したかで結果が変わります。この点を書いておかないと、引き継いだ人が同じところでつまずきます。

使った関数の対応環境

新しい関数を使っている場合、古い環境では開けません。共有の範囲が広がる可能性があるなら、必ず明記してください。

よくある間違い

同じ間違いが繰り返し起きています。先に知っておくと避けられます。

参照を固定していない

下方向にコピーしたときに、動いてはいけない範囲までずれます。上の数行は正しく動くため、気づくのが遅れます。表の最終行まで確認してください。

型が揃っていない

見た目が同じでも、数値と文字列は別物です。=ISNUMBER(A2) で確認できます。システムから書き出したデータでは、これが原因のことが多くあります。

空欄と0を区別していない

未入力なのか、実績が0なのか。表の意味が変わります。どちらとして扱うかを決めてから数式を書いてください。

範囲の行数が揃っていない

複数の範囲を渡す関数では、行数がずれると結果が狂います。エラーにならず値が返るため、気づきにくい種類の間違いです。

結果を検算していない

範囲の行数が揃っているか、参照を固定したかで結果が変わります。別の方法で同じ数字を出して、突き合わせてください。

数式が長くなりすぎている

入れ子が3段を超えると、書いた本人でも読めなくなります。作業列に分けてください。完成後に非表示にすれば見た目は変わりません。

書いたあとの確認

SUMIFSを新しく書いたら、次を順に確認してください。数分で終わります。

参照を固定したか

下にコピーする式では、固定すべき参照に $ が付いているかを見ます。上の数行だけ見て判断しないでください。範囲のずれは下のほうで表面化します。

一番下の行まで正しいか

最終行までスクロールして、結果を確認してください。途中から値が変わっていないかを見ます。

別の方法で検算したか

同じ数字を別の関数でも出して、突き合わせてください。SUMIFSの結果だけを見ても、正しいかどうかは判断できません。

空欄とゼロを区別したか

未入力なのか、実績が0なのか。表の意味が変わります。どちらとして扱うかを決めてから書いてください。

エラーの扱いを決めたか

隠すのか、残すのか。用途に合っているかを確認してください。

他の人が読めるか

入れ子が3段を超えていないか。超えているなら、作業列に分けることを検討してください。

数式の読み解き方

長い式に出会ったときの読み方を整理します。

内側から読む

入れ子になった数式は、いちばん内側の括弧から評価されます。外側から読もうとすると、途中で分からなくなります。

引数の区切りで分ける

カンマで区切られた単位が引数です。括弧の対応を見ながら、どこまでが1つの引数かを確認してください。

一部だけを別セルで試す

長い数式の一部を切り出して、別のセルに貼って結果を見てください。どこまでが正しく動いているかが分かります。

この記事の例で確認する

=SUMIFS(...)

特定の月形です。内側から順に、何が返っているかを確認してください。一度分解して読めば、似た形の数式はすべて読めるようになります。

分からない部分は残しておく

全部を理解してから触ろうとすると、いつまでも進みません。変える必要のある部分だけを特定して、そこだけ直してください。触っていない部分は、動いている限り放っておいて構いません。

実務で使う場面

どんなときにSUMIFSが要るのかを、作業の側から整理します。

集計表を作るとき

元データから数字を出す段階で使います。特定の月のが典型的な形です。この段階で型を揃えておかないと、後の集計が全部ずれます。

他人に渡す表を整えるとき

見た目を整える段階です。桁や表記を揃えると、読み手が数字を比較できるようになります。渡す前に、意図しない値が混ざっていないかを確認してください。

元データを掃除するとき

システムから書き出したデータには、余分な空白や型のずれが混ざります。掃除済みの値を1列作って、そこを参照する形にすると後が楽になります。

定期的に更新する表を作るとき

毎月同じ作業を繰り返すなら、数式を組んでおけば範囲を広げるだけで済みます。手作業を残すと、そこが毎回の負担になります。

数字が合わない原因を探すとき

検算に使えます。SUMIFSで出した値と、別の方法で出した値を突き合わせると、どこでずれているかが分かります。

SUMIFSについてよくある質問

Q. SUMIFSが使えません

その環境で対応していない可能性があります。#NAME? が出ている場合は、綴りの誤りか、環境が未対応かのどちらかです。

Q. 結果が0になります

参照先が空欄か、数値として認識されていない可能性があります。ISNUMBER で型を確認してください。

Q. 下にコピーすると結果が変わります

参照を固定していません。動いてはいけない部分に $ を付けてください。

Q. エラーを消したいのですが

=IFERROR(SUMIFS(...),"") で包めます。ただし原因を追っている段階では外してください。

Q. SUMIFSとEOMONTHはどちらを使うべきですか

やりたいことで決まります。出したい結果を一文で書いてから選んでください。

Q. Excelでも同じように使えますか

関数自体は使えますが、組み合わせる関数に差があります。共有先の環境を先に確認してください。

Q. 重くて開けません

列全体の指定をやめ、確定した期間は値に変換してください。この2つで大半が改善します。

Q. 引数を省略できますか

省略できる引数と、できない引数があります。省略すると既定の動作になり、意図と違う結果になることがあります。

Q. 計算結果を固定したいのですが

値として貼り付けてください。参照元を消しても壊れなくなります。

Q. 他の関数も見たいのですが

→ 全関数の一覧 から探せます。


この分野の他の記事

同じ「目的別」の記事です。目的が近いので、こちらで解決しない場合はこちらも見てください。