Google Sheetsで月番号を月名に変換する方法
TL;DR
このガイドではGoogle Sheetsで数値の月を月名に変換する3つの方法を説明します。カスタム日付書式、TEXT関数、QUERY関数の具体手順と、ロケールやトラブル対処、検証チェックリストを含みます。

概要
スプレッドシートに数値(例: 1、2、3)や日付形式で入力された「月」を、読みやすい月名(例: January / 1月 / 1月(英語名))に一括で置き換えたいときは、書式設定や関数を使うと瞬時に変換できます。本記事では以下の3つの主要手段を詳しく説明します。
- カスタム日付書式を使う方法(表示を変えるだけで元の値は日付のまま)
- TEXT関数を使う方法(セル内の値を文字列として月名に変換)
- QUERY関数を使う方法(クエリ結果の列だけ表示形式を変える)
また、ロケール設定による月名の言語、並べ替えや計算への影響、よくある失敗ケースと対処法も紹介します。
重要: 月名を日本語や英語など特定言語で表示したい場合は、スプレッドシートのロケール設定が影響します。ロケールが英語なら月名は英語で表示され、ロケールが日本なら日本語の月名(「1月」や「1月」表記)になる場合があります。必要に応じてロケールを変更してください。
カスタム日付書式で月名を表示する手順
カスタム日付書式は表示のみを変えます。元データが有効な日付(シリアル値)である必要があります。数値のみ(1〜12)の場合は一旦日付に変換するか、別の方法(TEXTなど)を使ってください。
基本の流れ(画面操作):
- 日付書式を変更したいセル範囲を選択します。
- メニューバーで「書式」をクリックします(UIラベル: Format)。
- 「数字」→「ユーザー設定の日付と時刻」を選びます(UIラベル: Number → Custom date and time)。
- 表示されたダイアログのテキストボックスに既存書式がある場合は削除して新しい書式を作ります。
- 右側の▼(矢印)アイコンからパーツを追加します。まず「月」を選び、次に「月の完全名称(Full name)」を選ぶと mmmm 相当の表示になります。
- 必要に応じて日や年を追加し、区切り文字(スペースやコンマ)を挿入します。
- 完了したら「適用」ボタンを押します。
注意点と補足:
- カスタム書式はセルの見た目を変えますが、内部値は日付のままです。数式や並べ替え・フィルタは元の値(シリアル値)に基づきます。
- 元データが単なる数値(1〜12)の場合は、日付シリアルにするために日付関数(例: DATE)で変換する必要があります。例: =DATE(2020, A2, 1) のようにすると、A2が月番号のときその月の1日を日付として扱えます。
TEXT関数で月名に変換する手順
TEXT関数はセルの値を文字列として整形します。結果は文字列なので、その後の数値計算や日付計算には使えません(必要なら別途元値を残してください)。
書式:
=TEXT(num, format)- num: 日付セル、または日付を返す式(例: DATE関数)
- format: 表示フォーマット(例: “mmmm” や “mmm”)。フォーマット文字列はダブルクォートで囲みます。
手順例:
- TEXT関数を使いたいセルを選びます。
- 次のように入力します(A1に日付または日付を表す値が入っている想定):
=TEXT(A1, "mmmm d yyyy")この例では「月をフルネーム、日および年は数値」として表示します。月だけを取り出したい場合は:
=TEXT(A1, "mmmm")短縮した月名(例: Jan)にするには “mmm” を使います。
注意点:
- TEXT関数で得た結果は文字列です。集計や日付差分に使うと誤動作するため、元の数値/日付列は保持するか、必要な場合は再変換してください。
- ロケール設定により “mmmm” の出力言語が変わります。
QUERY関数で日付をテキスト形式に変える手順
QUERY関数はデータセットをSQLライクに抽出・整形できます。FORMAT句を使うと、クエリ結果の列の表示形式を指定できます。FORMATは表示形式のみを変更します(元の範囲は変更しません)。
例:
=QUERY(A1:C5, "SELECT A, B, C FORMAT B 'DD MMMM YY'")この例では範囲 A1:C5 を参照し、列 A,B,C を出力します。さらに列 B の表示を “DD MMMM YY”(日:2桁、月:フルネーム、年:2桁)にしています。
ポイント:
- FORMATで指定するコード(DD, MMMM など)はQUERY関数の内部フォーマットで解釈されます。書式コードは後述の一覧を参照してください。
- QUERYは表示形式の変更に向いています。元データをそのまま保持しながら別シートに整形表示するワークフローに便利です。
書式コード一覧と置き換え例
以下はよく使うコードの一覧です。QUERYやカスタム日付書式、TEXT関数で使える書式は似ていますが、関数によって若干の違いがあるので注意してください。
| コード | 意味 | 例 |
|---|---|---|
| d | 先頭ゼロなしの日 | 7 |
| dd | 先頭ゼロありの日 | 07 |
| ddd | 曜日の省略名 | Tue |
| dddd | 曜日の完全名 | Tuesday |
| m | 先頭ゼロなしの月 | 8 |
| mm | 先頭ゼロありの月 | 08 |
| mmm | 月の省略名 | Jan |
| mmmm | 月の完全名 | January |
| mmmmm | 月の頭文字 | J |
| y / yy | 年を2桁で表示 | 22 |
| yyy / yyyy | 年を4桁で表示 | 2022 |
この表を参考に、TEXT関数の format 部分や QUERY の FORMAT 部分を調整してください。
実務でよくあるパターンと具体例
- データが「単なる月番号(1〜12)」だけで入っている場合:
- 直接カスタム日付書式を適用しても期待通り表示されない。解決策は DATE 関数で一時的に日付に変換すること。
例: A2 に 3(3月)が入っている場合、B2に次を入れると日付として扱えます。
=DATE(2020, A2, 1)そして B列にカスタム日付書式で “mmmm” を設定すると「March(または3月)」と表示されます。
- 元データを残しつつ別列に月名を表示したい場合:
- TEXT関数を使う: =TEXT(DATE(2020, A2, 1), “mmmm”)
- QUERYで新しいテーブルを作る: =QUERY(A1:C, “SELECT A, B, C FORMAT B ‘MMMM’”, 1)
- ロケールを日本語にして「1月」「2月」のような表現にしたい場合:
- スプレッドシートのファイルメニュー→設定→ロケールを “日本” に変更。これにより月名や曜日が日本語表記になります。
よくある失敗例と対処法
失敗: TEXT関数で得た月名で並べ替えすると意図した順にならない。
- 原因: 結果が文字列なので月順(1→12)ではなくアルファベット順や辞書順で並ぶ場合がある。
- 対処: 並べ替えは元の数値/日付列で行うか、ソートキー列(数値の月)を残して使う。
失敗: カスタム書式を適用しても英語の月名が出る。
- 原因: スプレッドシートのロケールが英語になっている。
- 対処: ファイル設定でロケールを変更する。
失敗: 1行目がヘッダーなのにQUERYが正しく認識しない。
- 原因: QUERY関数の第3引数(ヘッダー行数)が正しくない。
- 対処: 第3引数にヘッダー行数を指定する(例: ,1)。
失敗: 日付だと思っていた値が文字列で、カスタム書式が効かない。
- 原因: 元データが日付の見た目をしているだけの文字列。
- 対処: VALUE、DATEVALUE、または DATE 関数を使い、日付シリアルに変換する。
テストケースと受け入れ条件
テストケース:
- 入力: A列に “2022-03-15” など ISO 日付、期待: 月名が “March” またはロケールに応じた表記。
- 入力: A列に “3” (月番号のみ)、期待: TEXT関数または DATE を使って正しい月名を表示できる。
- 入力: A列に文字列 “03/15/2022”、期待: DATEVALUE やロケール解釈で正しく日付に変換できる。
受け入れ条件:
- 表示された月名が選択したフォーマット(フルネーム/省略名/先頭文字)に合致する。
- 並べ替え・集計を行う文脈では、元データ(数値/日付)を使えば順序が正しくなる。
- ロケール変更後は出力言語が期待通りである。
ロール別チェックリスト
データ作成者:
- 元データ(元となる日付列)を削除しない。
- 月表示を作る場合は元の列を残して別列で表示する。
データ利用者(レポート作成者):
- レポート用に月名だけ必要なら TEXT を使うが、並べ替えキーとして月番号列を用意する。
- クエリで表示形式を変える場合は元データを保管する。
開発者/自動化担当者:
- スクリプトや Apps Script で処理を自動化するなら、日付の正規化(シリアル化)を行ってからフォーマットを適用する。
- ロケール依存の出力があるか考慮する。
追加のアプローチと代替案
Apps Script を使って任意の言語で月名を返す関数を作る(ロケールに依存せずに固定の言語で出力したい場合に有用)。
VLOOKUP / INDEX-MATCH を使った手動のマッピング表を作る(例: 1→January, 2→February)。少量データで確実に制御したい場合に便利。
ピボットテーブルで月別集計を作り、ラベルの表示設定で月名を使う(集計時の表現を管理しやすい)。
マインドセットとヒューリスティクス(短い指針)
- 表示かデータかをまず決める: 見た目だけ変えたいなら書式、値として変換したいならTEXT/変換関数。
- ロケールは最初に確認する: 言語が異なると出力が変わる。
- 元データは必ずバックアップ: 表示変換で元値を失わないワークフローを作る。
小さなプレイブック(やることリスト)
- 元データの型を確認する(数値 / 文字列 / 日付)。
- ロケールを確認する(ファイル→設定)。
- 表示だけで良ければカスタム日付書式を適用する。
- 別列にテキストとして出力するなら TEXT 関数を使う。
- レポート用の一時テーブルが必要なら QUERY を検討する。
- 並べ替えや集計が必要なら、数値(または日付シリアル)の列を残す。
セキュリティとプライバシーに関する注意
この処理自体は個人情報を扱うわけではありませんが、日付データが個人を特定する情報(例: 生年月日)に関係する場合は、データアクセス権限と共有設定に注意してください。
マイグレーションと互換性のヒント
- Excelからインポートした場合、日付のシリアル基準(1900/1904など)やロケールにより解釈が変わることがあります。インポート直後にサンプルで結果を検証してください。
- Apps Scriptや外部APIで処理する場合は、ISO 8601(YYYY-MM-DD)形式で渡すと解釈の差異が少なくなります。
決定支援フローチャート
flowchart TD
A[データを月名にしたい?] --> B{元データは日付か?}
B -- はい --> C{見た目だけ変える?}
B -- いいえ --> D[DATEで日付化 or VLOOKUP]
C -- はい --> E[カスタム日付書式を適用]
C -- いいえ --> F[TEXT関数で文字列に変換]
D --> F
F --> G[並べ替えキーを保つ]
E --> G
G --> H[完了]役立つスニペット集
- 月番号(A2)からフル月名(英語)を返す:
=TEXT(DATE(2020, A2, 1), "mmmm")- 日付(A2)から月のみを日本語で取得(ロケールが日本の場合):
=TEXT(A2, "mmmm")- QUERYで列Bを “日 月 年” 表示に変える:
=QUERY(A1:C, "SELECT A, B, C FORMAT B 'DD MMMM YYYY'", 1)用語集(1行)
- ロケール: 表示言語や日付の解釈ルールを決めるスプレッドシートの設定。
- シリアル値: スプレッドシート内部で日付が持つ数値表現。
- TEXT関数: 値を指定フォーマットの文字列に変換する関数。
まとめ
- カスタム日付書式は見た目のみを変える最も軽い方法です。元データは日付である必要があります。
- TEXT関数はセルを文字列に変換します。表示専用の列を作ると安全です。
- QUERY関数は別テーブルとして整形表示する場合に便利です。
- ロケールとデータ型の日付/文字列の区別に注意すると、変換ミスを減らせます。
最後に、作業前に必ず元データのバックアップを取り、並べ替えや集計に使うキー列を残す手順をワークフローに組み込んでください。これで、月名変換が安定して運用できます。