スプレッドシートのMONTH関数の使い方|月を取得

スポンサーリンク

「この売上データ、月ごとに集計してほしいんだけど」。こんな依頼、よくありますよね。日付から月だけを取り出す作業、手動でやると地味に面倒です。しかも件数が多いとミスも増えます。

スプレッドシートのMONTH関数を使えば、一発で解決します。日付から月の数字を自動で取り出せるので、月別集計や四半期判定まで応用がきくんです。この記事では、MONTH関数の基本から実務で使える応用ワザまで、まるごと紹介していきます。

スプレッドシートのMONTH関数とは?月を取り出す基本

MONTH関数は、日付データから「月」だけを取り出す関数です。読み方はそのまま「マンス」。戻り値は1〜12の整数で返ってきます。たとえば7月20日なら 7 が返ります。

構文と引数

=MONTH(日付)

引数はひとつだけ。とてもシンプルですよね。

引数必須/任意説明
日付必須月を取り出したい日付。セル参照、DATE関数の結果、シリアル値が使える

日付から月を取り出す基本例

セルA2に 2026/07/20 と入っている場合を見てみましょう。

=MONTH(A2)

結果は 7 です。

DATE関数の使い方と組み合わせることもできます。

=MONTH(DATE(2026,12,25))

結果は 12 。DATE関数(年・月・日から日付を作る関数)で作った日付でも問題なく使えますよ。

月別集計をSUMIF+MONTHで自動化する

実務で最もよく使うのが、月別の合計を出すパターンです。MONTH関数で補助列を作る方法が一番わかりやすいので、そこから紹介します。

補助列にMONTHで月番号を抽出

まず、日付が入ったA列の横に補助列を作ります。

 A列(日付)B列(売上)C列(月)
2行目2026/01/1530,0001
3行目2026/01/2845,0001
4行目2026/02/1020,0002
5行目2026/03/0555,0003
6行目2026/01/2010,0001

C2に入れる数式はこれだけです。

=MONTH(A2)

あとはC6までコピーすればOKです。

SUMIFで月ごとに合計

補助列ができたら、SUMIF関数(条件に合うセルを合計する関数)で月ごとに集計できます。

=SUMIF(C2:C6, 1, B2:B6)

1月の売上合計は 85,000 です。30,000 + 45,000 + 10,000 ですね。手動で計算しても一致します。

月の数字を変えるだけで、2月なら 20,000、3月なら 55,000 と出せます。データが増えても数式を変える必要がないのが便利ですよ。

今月のデータだけを抽出する(MONTH+TODAY)

「今月分だけ見たい」という場面も多いですよね。MONTH関数とTODAY関数の使い方を組み合わせれば、自動で今月を判定できます。

MONTH(TODAY())で今月番号を取得

=MONTH(TODAY())

TODAY関数(今日の日付を返す関数)は毎回再計算されます。なので、この数式は常に現在の月番号を返してくれます。2026年3月なら 3 です。

IF条件と組み合わせた活用例

「今月のデータなら売上を表示、それ以外は空白」という条件分岐もできます。

=IF(MONTH(A2)=MONTH(TODAY()), B2, "")

これをSUMIFと組み合わせることもできます。

=SUMIF(C2:C100, MONTH(TODAY()), B2:B100)

C列が補助列(MONTH関数で月番号を入れた列)です。月が変わると自動で集計対象が切り替わるのがポイントですよ。

四半期を自動判定する

月番号がわかれば、四半期の判定も簡単です。MONTH関数の結果を少し加工するだけで実現できます。

ROUNDUP(MONTH()/3,0)で四半期番号に変換

=ROUNDUP(MONTH(A2)/3, 0)

ROUNDUP関数(切り上げを行う関数)で、月を3で割って切り上げます。仕組みはこうです。

  • 1〜3月: 1/3〜3/3 → 切り上げで 1(Q1)
  • 4〜6月: 4/3〜6/3 → 切り上げで 2(Q2)
  • 7〜9月: 7/3〜9/3 → 切り上げで 3(Q3)
  • 10〜12月: 10/3〜12/3 → 切り上げで 4(Q4)

Qラベル表示の応用例

数字だけだと味気ないので、「Q1」のように表示したいこともありますよね。

="Q" & ROUNDUP(MONTH(A2)/3, 0)

7月なら Q3 と表示されます。

日本の会計年度(4月始まり)に対応する場合はこちらです。

=INT(MOD(MONTH(A2)-4, 12)/3) + 1

ちょっとむずかしく見えますが、やっていることはシンプルです。MOD関数(余りを求める関数)で4月を起点にずらしているだけですよ。

DATE関数と組み合わせて月初・月末を求める

MONTH関数は、DATE関数の使い方と組み合わせると月初・月末の日付も求められます。

月初日を求める数式

=DATE(YEAR(A2), MONTH(A2), 1)

YEAR関数の使い方で年を、MONTH関数で月を取り出します。日を 1 に固定すれば月初日の完成です。

A2が 2026/07/20 なら、結果は 2026/07/01 になります。

月末日を求める数式

月末日の求め方は2つあります。

=DATE(YEAR(A2), MONTH(A2)+1, 0)

この数式は「翌月の0日」を指定しています。0日目は前月の最終日になるんです。なので、7月の翌月8月の0日は 2026/07/31 です。

もっとシンプルに書くなら、EOMONTH関数(月末日を返す関数)が便利です。

=EOMONTH(A2, 0)

結果は同じ 2026/07/31 です。短く書けるのでこちらもおすすめですよ。

YEAR・MONTH・DAY関数の比較

日付から特定の要素を取り出す関数は、3つセットで覚えると便利です。

関数戻り値範囲例(2026/07/20)
YEAR関数1900〜99992026
MONTH1〜127
DAY1〜3120

3つとも構文は同じ形式です。DAY関数(日を返す関数)も同様です。引数に日付を渡すだけ。使い方に迷うことはないですよね。

=YEAR(A2)   → 2026
=MONTH(A2)  → 7
=DAY(A2)    → 20

どの関数も、セル参照やDATE関数の結果を渡して使います。数式内に 7/20/2026 のように直接書くと、割り算として計算されてしまうので注意してください。

よくあるエラーと対処法

MONTH関数で出やすいエラーは2つです。

エラー原因対処法
#VALUE!日付として認識できない文字列を渡したセル参照またはDATE関数を使う
#NUM!シリアル値が大きすぎる入力値を確認する

よくあるのは #VALUE! エラーです。たとえば、次の数式はエラーになります。

=MONTH("2026年7月20日")

日本語の日付文字列は認識できません。この場合はDATE関数で書き直してください。

=MONTH(DATE(2026,7,20))

もうひとつ注意したいのが、数式内での日付の直接入力です。

=MONTH(7/20/2026)

これは 7÷20÷2026 という割り算になってしまいます。必ずセル参照かDATE関数を使ってみてください。

まとめ

MONTH関数は、日付から月を取り出すシンプルな関数です。構文は =MONTH(日付) のひとつだけ。

この記事で紹介した活用パターンをおさらいしましょう。

  • 月別集計: 補助列にMONTH関数 → SUMIFで合計
  • 今月データの抽出: MONTH(TODAY())で自動判定
  • 四半期判定: ROUNDUP(MONTH()/3,0)で変換
  • 月初・月末: DATE関数やEOMONTH関数と組み合わせ

まずは補助列を使った月別集計から試してみてください。一度作れば、毎月の集計作業がグッと楽になりますよ。

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