「この売上データ、月ごとに集計してほしいんだけど」。こんな依頼、よくありますよね。日付から月だけを取り出す作業、手動でやると地味に面倒です。しかも件数が多いとミスも増えます。
スプレッドシートの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/15 | 30,000 | 1 |
| 3行目 | 2026/01/28 | 45,000 | 1 |
| 4行目 | 2026/02/10 | 20,000 | 2 |
| 5行目 | 2026/03/05 | 55,000 | 3 |
| 6行目 | 2026/01/20 | 10,000 | 1 |
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〜9999 | 2026 |
| MONTH | 月 | 1〜12 | 7 |
| DAY | 日 | 1〜31 | 20 |
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関数と組み合わせ
まずは補助列を使った月別集計から試してみてください。一度作れば、毎月の集計作業がグッと楽になりますよ。
