ExcelのMONTH関数の使い方|日付から月だけを取り出す方法

スポンサーリンク

「日付データから月だけ取り出したいのに、手作業でコピーしている」なんてことはありませんか。件数が多いと時間もかかりますし、ミスも起きやすいですよね。

ExcelのMONTH関数を使えば、日付データから月の数値を一発で取り出せます。この記事では基本の書き方から実務パターンまでまとめて紹介します。

この記事は次のような人におすすめ

  • 日付データから「月」だけを取り出したい
  • 月別の売上集計や件数カウントを自動化したい
  • MONTH関数とYEAR関数DAY関数の違いを整理したい

MONTH関数とは?

MONTH関数(読み方: マンス)は、日付のシリアル値から「月」の部分を整数で返す関数です。英語の「month(月)」が関数名の由来です。

たとえばセルに 2025/4/1 が入っている場合、MONTH関数を使うと 4 が返ります。返り値は1から12の範囲の整数です。

Excelの日付は内部的に「シリアル値」という数値で管理されています。1900年1月1日を「1」として、1日ごとに1ずつ増えます。MONTH関数はこのシリアル値から月の部分だけを抜き出してくれます。

MONTH関数の書き方(構文と引数)

基本構文

=MONTH(シリアル値)

引数は1つだけで必須です。

引数の説明

引数必須/省略可内容
シリアル値必須月を取り出す元になる日付を指定する。セル参照・日付文字列・DATE関数などが使える

NOTE

引数にはセル参照(A1)のほか、日付の文字列("2025/4/1")やDATE関数の戻り値も指定できます。ただし文字列を直接渡す場合は "2025/4/1" のようにダブルクォーテーションで囲んでください。

MONTH関数の基本的な使い方

セル参照で日付を指定する

もっとも基本的な使い方です。A1に 2025/4/1 が入っているとします。

=MONTH(A1)

結果: 4

日付の「月」の部分だけが整数で返ります。

日付文字列を直接指定する

引数に日付の文字列を直接入力することもできます。

=MONTH("2025/4/1")

結果: 4

Excelが文字列を自動でシリアル値に変換してから月を取り出します。

DATE関数と組み合わせる

DATE関数が返すシリアル値をそのまま渡せます。

=MONTH(DATE(2025,4,1))

結果: 4

DATE関数で作った日付の月を確認したいときに使うパターンです。

TODAY関数と組み合わせる

TODAY関数と組み合わせると、今月の月番号を自動取得できます。

=MONTH(TODAY())

結果: 3(2026年3月の場合)

ファイルを開くたびに自動で更新されるので、月次レポートの切り替え処理などで重宝しますよ。

MONTH関数の実務活用パターン

パターン1: 年度(4月始まり)を自動判定する

日本企業では4月始まりの年度を使うケースが多いですよね。MONTH関数とYEAR関数を組み合わせれば自動判定できます。

A1に日付が入っているとします。

=IF(MONTH(A1)>=4, YEAR(A1), YEAR(A1)-1)

結果の例:

  • 2025/4/12025(年度)
  • 2026/3/312025(年度)
  • 2025/1/152024(年度)

4月以降ならそのままの年、3月以前なら1を引くだけです。IF関数との組み合わせでシンプルに書けます。

パターン2: 月別に売上を集計する(SUMIFS連携)

売上データを月別に集計したいときは、MONTH関数で月を取り出してからSUMIFS関数と組み合わせます。

A列に日付、B列に売上金額が入っているとします。C列に =MONTH(A2) で月番号の作業列を作れば、次の式で集計できます。

=SUMIFS(B:B, C:C, 1)

作業列を使わずに直接集計するなら、日付範囲で絞り込みます。

=SUMIFS(B:B, A:A, ">="&DATE(2025,1,1), A:A, "<="&DATE(2025,1,31))

作業列を使うほうが数式がシンプルになります。月ごとの集計表を作るときにおすすめですよ。

パターン3: 月ごとに件数をカウントする

日付データが何月のものか件数を数えたいときは、MONTH関数とCOUNTIFS関数を組み合わせます。

A列に日付が入っていて、C列に =MONTH(A2) の作業列を作ったとします。

=COUNTIFS(C:C, 4)

結果: 4月のデータ件数

作業列なしで直接カウントするなら、次のように書きます。

=COUNTIFS(A:A, ">="&DATE(2025,4,1), A:A, "<="&DATE(2025,4,30))

パターン4: 四半期(Q1〜Q4)に変換する

月から四半期を自動で振り分けるには、MONTH関数とCEILING関数を組み合わせます。

A1に日付が入っているとします。

=CEILING(MONTH(A1),3)/3

結果の例:

  • 1月〜3月 → 1(Q1)
  • 4月〜6月 → 2(Q2)
  • 7月〜10月 → 3(Q3)
  • 10月〜12月 → 4(Q4)

「Q」を付けて表示したい場合は、TEXT関数と組み合わせます。

="Q"&CEILING(MONTH(A1),3)/3

結果: Q2(4月の場合)

パターン5: 日付の「月」だけを別の月に置き換える

日付データの月だけを変更したいケースです。A1に 2025/4/15 が入っているとします。月だけを8月に変更するにはDATE関数と組み合わせます。

=DATE(YEAR(A1), 8, DAY(A1))

結果: 2025/8/15

YEAR関数DAY関数で年・日を保持しつつ、月だけを差し替えています。イベント日程を移動するときに便利ですよ。

よくあるエラーと対処法

症状原因対処法
#VALUE! エラー引数が日付として認識できない文字列セルの値が正しい日付形式か確認する。"2025年4月" のように日がない文字列はNG
#VALUE! エラー日付が文字列として入力されているDATEVALUE関数でシリアル値に変換してから渡す
#NUM! エラーシリアル値が負の数Excelの日付は1900/1/1以降が有効。それより前の日付は扱えない
想定と違う月が返るセルの表示形式が「文字列」セルの表示形式を「標準」や「日付」に変更してから日付を再入力する
想定と違う月が返る日付が文字列として保存されているセルが左寄せになっていたら文字列。DATEVALUE関数で変換する

NOTE

日付に見えるのに #VALUE! が出る場合は、セルの値が「文字列」になっている可能性があります。セルを選択して数式バーを確認し、左寄せになっていたら文字列です。DATEVALUE関数で変換するか、表示形式を変更して再入力してみてください。

似た関数との違い・使い分け

MONTH関数と同じ「日付から一部を取り出す」関数を比較します。

関数取り出す要素使い方の例結果
YEAR関数=YEAR("2025/4/1")2025
MONTH=MONTH("2025/4/1")4
DAY関数=DAY("2025/4/1")1
TEXT関数書式指定で文字列化=TEXT("2025/4/1","m")“4”(文字列)
WEEKDAY関数曜日番号=WEEKDAY("2025/4/1")3(火曜日)

使い分けのポイント

  • 「年の数値が欲しい」→ YEAR関数
  • 「月の数値が欲しい」→ MONTH関数(計算に使える整数が返る)
  • 「日の数値が欲しい」→ DAY関数
  • 「”4月”のような文字列が欲しい」→ TEXT関数
  • 「年・月・日をバラバラに指定して日付を作りたい」→ DATE関数

MONTH関数が返すのは数値です。セルに「4月」と表示したい場合はTEXT関数を使ってください。セルの表示形式を m"月" に変更する方法もあります。

YEAR関数・MONTH・DAY関数の3関数はセットで覚えておくと便利です。日付データの分解・再構成が自在にできるようになりますよ。

まとめ

MONTH関数は、日付データから月の数値を取り出す関数です。

  • 構文: =MONTH(シリアル値) — 引数は1つだけ
  • 戻り値: 1〜12の整数(月の数値)
  • よく使う組み合わせ: TODAY関数で今月を取得、IF関数で年度判定、SUMIFS関数で月別集計
  • 実務活用: 年度判定(4月始まり)、月別集計・カウント、四半期変換、月の置き換え
  • 関連関数: YEAR関数DAY関数DATE関数TEXT関数と目的に応じて使い分ける

日付データから月を取り出す場面は、月次集計や年度管理でとても多いです。YEAR関数DAY関数とあわせて使いこなしてみてください。

関連記事

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