経理担当者が月次レポートを作るとき、総務担当者が年度ごとの人事データを集計するとき、営業事務担当者が受注日から締め月を判定するとき――いずれの場面でも「日付から年・月・日だけを取り出したい」というニーズが出てきます。この作業を1つの関数で済ませてくれるのがYEAR・MONTH・DAY関数です。書き方自体は非常にシンプルですが、実務で使うと「文字列扱いの日付でエラーになる」「西暦年と会計年度がずれる」といった、関数の構文だけでは分からないつまずきに必ずと言っていいほど遭遇します。
YEAR・MONTH・DAYの基本の書き方
YEAR・MONTH・DAYはいずれも引数を1つだけ取り、指定した日付から年・月・日に対応する数値を返します。
例:A1セルに「2026/9/20」が入っている場合
=YEAR(A1) → 2026 =MONTH(A1) → 9 =DAY(A1) → 20
返ってくるのは日付ではなく「数値」である点が重要です。この数値をそのままCOUNTIFSやSUMIFSの条件に使えるため、「9月のデータだけ集計する」「特定の日だけ抽出する」といった月次・日次の集計作業に応用できます。
実務でのよくある使用シーン
経理担当者であれば、取引データの日付列からMONTH関数で作業列を作り、COUNTIFSやSUMIFSと組み合わせて「9月に発生した経費だけ」「今月の売上合計」といった月次レポートを自動集計する場面が典型的です。手作業でフィルタをかけて集計するよりも、月が変わるたびに数式が自動で対象を切り替えてくれるため、月次締め作業の手間が大きく減ります。総務担当者であれば、社員の入社日や異動日を集計する際に「4月始まりの年度」で人事データをまとめるケースが頻出します。この場合は単純なYEAR関数だけでは正しく集計できず、後述するMONTH関数を使った年度調整の数式が必須になります。営業事務担当者であれば、受注日のDAY関数の値から「20日締め」「月末締め」のどちらの請求サイクルに乗せるかを判定する場面でも使われます。
暦年と「年度」がずれる問題と調整の考え方
日本企業の多くは4月始まり3月終わりの「年度(会計年度)」で予算や実績を管理していますが、YEAR関数が返すのはあくまで暦の上での西暦年です。この2つの基準の違いが、年度集計のズレという実務でつまずきやすいポイントになります。
4月始まりの年度では、1月〜3月は前年度扱いになります。この調整をMONTH関数で行うのが実務での定石です。
A1の月が1〜3月であれば西暦年から1を引き、4月以降であればそのままの西暦年を返す数式です。この結果を作業列にしておけば、年度単位のCOUNTIFS・SUMIFS集計にそのまま条件として使えます。
YEAR・MONTH・DAYでよくあるエラー・トラブルと対処法
参照している日付が、Excel上で「日付」ではなく「文字列」として入力されている場合に発生します。
- 他のシステムやCSVから取り込んだ日付データが、文字列のまま貼り付けられている
- 「2026.9.20」のように、スラッシュやハイフンではなくピリオドで区切られている
対処法として、まずセルの表示が左寄せになっていないか確認してください(日付が左寄せなら文字列扱いのサインです)。区切り文字をスラッシュに置換するか、=YEAR(DATEVALUE(A1))のようにDATEVALUE関数で一度日付値に変換してからYEAR・MONTH・DAYに渡すとエラーを回避できます。
エラーメッセージは出ないため気づきにくいですが、実務上もっとも起こりやすいトラブルです。
対処法は前述の通り、MONTH関数で1〜3月かどうかを判定し、該当する場合は年を1つ差し引いた「年度列」を作業列として用意することです。集計の条件範囲にはこの年度列を使うようにしてください。
「9月のデータだけ集計したい」という発想から、条件範囲に直接MONTH関数を書いてしまうミスもよく見られます。
COUNTIFS・SUMIFSの条件範囲には、実際のセル範囲を指定する必要があります。日付データの隣に「=MONTH(日付セル)」の作業列を追加し、その作業列全体を条件範囲として指定してください。
似た関数との使い分け
YEAR・MONTH・DAYは日付から数値を取り出す関数ですが、目的によっては別の関数の方が適しています。
YEAR・MONTH・DAY
- 年・月・日を「数値」で取得
- COUNTIFS/SUMIFSの条件作成や年度計算に向く
TEXT関数
- 日付を「文字列」に整形
- 「2026年9月」のような表示用ラベル作成に向く
EDATE・EOMONTH
- 日付そのものを月単位でずらす
- 支払期日・契約更新日の計算に向く
「集計の条件として使いたい」ならYEAR・MONTH・DAY、「見た目のラベルとして表示したい」ならTEXT関数、「日付そのものを○ヶ月後にずらしたい」ならEDATE・EOMONTHというように、欲しい結果が数値か・文字列か・日付かで使い分けるのがコツです。
初心者がつまずきやすいポイントとコツ
- 日付が本当に「日付形式」か必ず確認する。セルが右寄せで表示されていれば日付・数値、左寄せなら文字列の可能性が高いというExcelの基本ルールを覚えておくと、#VALUE!エラーの原因調査が早くなります。
- YEAR関数の結果は「西暦年」であって「年度」ではない。会計年度・事業年度で集計する場合は、必ずMONTH関数で1〜3月かどうかを判定する調整を挟みましょう。
- COUNTIFS・SUMIFSの条件範囲には作業列を使う。関数を条件範囲に直接書くのではなく、MONTHやYEARの結果を並べた列をあらかじめ作ってから、その列を条件範囲に指定します。
- 戻り値は数値なので表示形式に注意する。YEAR・MONTH・DAYの結果セルが日付形式のまま残っていると、「2026」ではなく日付として表示されてしまうことがあるため、必要に応じて「標準」に変更してください。
まとめ
YEAR・MONTH・DAYは構文自体はシンプルですが、実務で使いこなすには「文字列扱いの日付でエラーになる」ことと「暦年と会計年度は別物である」ことの2点を理解しておく必要があります。文字列日付にはDATEVALUE関数での変換、年度集計にはMONTH関数を使った調整式を組み合わせれば、月次レポートや年度別の人事集計もぐっと組みやすくなります。数式を一から組み立てるのが不安な方は、下のツールで日本語の空欄を埋めるだけで数式を作成できます。
よくある質問
関連記事
- DATEDIF関数で勤続年数・年齢を計算する方法
- NETWORKDAYS関数で稼働日数(営業日数)を計算する方法
- COUNTIFS関数で複数条件を数える方法
- EDATE・EOMONTH関数で契約更新日・支払期日を自動計算する方法
- TEXT関数で日付・金額の表示形式を自由自在に変える方法