スプレッドシートTEXT関数の使い方|日付・数値変換まとめ

スポンサーリンク

日付を文字列と結合したら「44987」みたいな謎の数字になった。そんな経験はありませんか?

Googleスプレッドシートで日付や数値をそのまま文字列に結合すると、見た目がおかしくなります。表示形式の情報が落ちてしまうからです。

この問題を解決するのがTEXT関数です。「この数値をこの形式で文字列にして」と指定できます。

この記事では、TEXT関数の基本から書式コード一覧、実務で使える変換パターンまでまとめて紹介します。

スプレッドシートのTEXT関数とは?何ができる関数か1分でわかる

TEXT関数(読み方: テキスト関数)は、数値や日付を指定した書式の文字列に変換する関数です。

名前のとおり、値を「テキスト(文字列)」に変えてくれます。

たとえば「1234567」という数値にTEXT関数を使うと「1,234,567」のように桁区切り付きの文字列にできます。日付なら「2026/3/19」を「3月19日(木)」に変換できます。

TEXT関数でできることをまとめると、次のとおりです。

  • 数値に桁区切りや通貨記号を付けて文字列にする
  • 日付を「〇年〇月〇日」や「〇月〇日(曜日)」形式に変換する
  • 時刻を「午前/午後」付きの形式に変換する
  • 変換した文字列を他の文字と結合して文章を作る

TEXT関数の戻り値は文字列です。見た目は数値でも中身は文字列になります。このポイントは後ほど詳しく解説しますね。

NOTE

TEXT関数はGoogleスプレッドシートの全バージョンで使えます。Excelにも同名の関数があり、基本的な使い方は共通です。

TEXT関数の基本の書き方

構文と引数

=TEXT(数値, 表示形式)

第1引数に変換したい値、第2引数に書式コードを指定します。書式コードはダブルクォーテーションで囲みます。

引数必須/任意説明
数値必須変換元の数値・日付・セル参照
表示形式必須書式コード文字列(””で囲む)

引数は2つだけです。「何を」「どんな形式で」文字列にするかを指定するシンプルな構造ですよ。

シンプルな使用例(数値を3桁区切りに変換)

まずは数値に桁区切りのカンマを付ける例です。

=TEXT(1234567, "#,##0")

結果は「1,234,567」です。書式コード #,##0 が桁区切りを指定しています。

もう少し例を見てみましょう。

=TEXT(0.85, "0%")

結果は「85%」です。小数を百分率の文字列に変換しました。

=TEXT(A1, "yyyy/mm/dd")

A1に日付が入っていれば「2026/03/19」のような文字列になります。

書式コード一覧|日付・時刻・数値・曜日の4カテゴリ

TEXT関数の第2引数に指定する書式コードを一覧で紹介します。よく使うものを4つのカテゴリに分けました。

日付系の書式コード

書式コード出力例説明
yyyy2026年(4桁)
yy26年(下2桁)
mm03月(2桁・ゼロ埋め)
m3月(1〜2桁)
dd19日(2桁・ゼロ埋め)
d19日(1〜2桁)

年・月・日を自由に組み合わせて日付の文字列を作れます。区切り文字にスラッシュや「年」「月」を使えば好みの形式にできますよ。

=TEXT(A1, "yyyy年m月d日")

結果は「2026年3月19日」のようになります。

時刻系の書式コード

書式コード出力例説明
HH14時(24時間表記・2桁)
hh02時(12時間表記・2桁)
mm(時刻の直後)05分(2桁・ゼロ埋め)
ss09秒(2桁・ゼロ埋め)
AM/PM午後午前/午後の表示

注意点がひとつあります。mm は文脈によって意味が変わります。時刻コード(h や HH)の直後に書くと「分」になります。それ以外の場所では「月」として扱われますよ。

=TEXT(A1, "HH:mm:ss")

結果は「14:05:09」のようになります。

=TEXT(A1, "hh:mm AM/PM")

結果は「02:05 午後」のようになります。日本語環境では AM/PM が「午前/午後」で表示されます。

数値系の書式コード

書式コード出力例説明
#,##01,234,567桁区切り(整数)
#,##0.001,234,567.89桁区切り+小数2桁
0.003.14小数2桁(桁区切りなし)
0%85%パーセント表示
0.0%85.5%パーセント(小数1桁)
¥#,##0¥1,234,567円通貨
000-0000123-4567ゼロ埋め+ハイフン区切り

#0 の違いを押さえておきましょう。# は値がなければ非表示です。0 は値がなくてもゼロを表示します。

=TEXT(5, "000")

結果は「005」です。先頭にゼロが埋められます。郵便番号や社員番号のゼロ埋めに便利ですよ。

曜日系の書式コード

書式コード出力例説明
dddd木曜日曜日(フルネーム)
ddd曜日(略称)

日本語ロケール環境のGoogleスプレッドシートでは、曜日が日本語で表示されます。

=TEXT(A1, "ddd")

A1が2026年3月19日(木曜日)なら、結果は「木」です。

=TEXT(A1, "dddd")

結果は「木曜日」になります。

よく使う実務パターン5選

ここからは、TEXT関数の実務での使いどころを5つ紹介します。

日付を「〇月〇日(曜)」と表示する

報告書やメール文面に使いやすい日付表示です。

=TEXT(A1, "m月d日(ddd)")

A1が「2026/3/19」なら、結果は「3月19日(木)」です。

カッコ内の「ddd」が曜日の略称に変換されます。フルネームにしたいときは「dddd」に変えてください。

=TEXT(A1, "m月d日(dddd)")

結果は「3月19日(木曜日)」になります。

数値に¥と,を付けて文章中に埋め込む

金額を文章の中に入れるパターンです。

="売上は" & TEXT(B1, "¥#,##0") & "です。"

B1が「1500000」なら、結果は「売上は¥1,500,000です。」になります。

TEXT関数で書式を整えてから&演算子で結合するのがポイントです。TEXT関数を使わずに結合すると「売上は1500000です。」のように桁区切りなしの読みづらい文になってしまいます。

日付と文字を&演算子で結合する(変な数字回避)

冒頭でも触れた「日付を結合したら謎の数字になる」問題の解決策です。

="提出期限:" & A1

この数式だと、A1が「2026/3/19」でも「46097」のような数字になります。スプレッドシートが日付を内部のシリアル値で扱っているためです。

TEXT関数で変換してから結合すれば解決します。

="提出期限:" & TEXT(A1, "yyyy年m月d日")

結果は「提出期限:2026年3月19日」です。

日付と文字列の結合には、必ずTEXT関数を挟みましょう。これを知っているだけで「変な数字」トラブルを回避できますよ。

TEXTJOINと組み合わせて複数セルを整形結合

複数の日付や数値を一気に整形しつつ結合するパターンです。TEXTJOIN関数と組み合わせます。

たとえばA1〜A3に3つの日付が入っているとします。

=TEXTJOIN("、", TRUE, TEXT(A1, "m/d"), TEXT(A2, "m/d"), TEXT(A3, "m/d"))

結果は「3/19、3/20、3/21」のようになります。

ARRAYFORMULA関数を使えばもっとスマートに書けます。

=TEXTJOIN("、", TRUE, ARRAYFORMULA(TEXT(A1:A3, "m/d")))

結果は同じです。セル範囲をまとめて変換してから結合しています。複数セルの整形結合では、この書き方を覚えておくと便利ですよ。

パーセントを「xx.x%」形式で文字として扱う

アンケート結果や達成率を文章に埋め込むパターンです。

=TEXT(B1, "0.0%")

B1が「0.856」なら、結果は「85.6%」です。

文章に埋め込むときはこうなります。

="達成率は" & TEXT(B1, "0.0%") & "でした。"

結果は「達成率は85.6%でした。」です。

小数の桁数は書式コードで調整できます。0% なら「86%」、0.00% なら「85.60%」です。用途に合わせて使い分けてみてください。

TEXT関数で変換後に計算できなくなったときの解決策

TEXT関数を使い始めると、ほぼ全員がぶつかる落とし穴があります。「計算できなくなった」問題です。

なぜ計算できなくなるのか(文字列扱いになる理由)

TEXT関数の戻り値は文字列です。見た目が「1,234」でも中身は文字列です。

文字列はSUMやAVERAGEなどの計算関数に渡しても無視されます。数値として認識されないからです。

=TEXT(100, "#,##0")   → "100"(文字列)
=TEXT(200, "#,##0")   → "200"(文字列)

この2つのセルをSUM関数で合計しても「0」です。文字列なのでスキップされてしまいます。

TEXT関数は「表示用の整形」に使う関数です。計算に使うセルには適用しないのが基本ルールですよ。

VALUE関数で数値に戻す往復変換パターン

どうしてもTEXT関数で変換した値を数値に戻したいときは、VALUE関数を使います。

=VALUE(TEXT(A1, "#,##0"))

TEXT関数で文字列にしたものを、VALUE関数で数値に戻す「往復変換」です。

ただし注意点があります。TEXT関数で「¥」や「%」を付けた場合の挙動です。

=VALUE("¥1,234")   → 1234(通貨記号は自動除去)
=VALUE("85%")      → 0.85(パーセントは小数に変換)

また先頭ゼロは消えます。TEXT関数で「005」にしてもVALUEで戻すと「5」です。

実務では「計算用セル」と「表示用セル」を分けるのがおすすめです。元データは数値のまま残しておき、表示が必要な場所だけTEXT関数を使いましょう。

GoogleスプレッドシートとExcelの書式コードの違い

TEXT関数の基本的な使い方はGoogleスプレッドシートとExcelで共通です。ただし、一部の書式コードに違いがあります。

書式コードGoogleスプレッドシートExcel
? (スペース埋め)非対応対応
分数(# ?/?)非対応対応
* (繰り返し)非対応対応
日付+数値の混在非対応一部対応
dddd / ddd日本語で「木曜日/木」ロケール依存

GoogleスプレッドシートではExcelの一部書式パターンが使えません。? によるスペース埋めや分数フォーマットが代表的です。

ExcelからGoogleスプレッドシートにファイルを移行するとき、TEXT関数の書式コードが動かないケースがあります。上の表に該当する書式を使っていないか確認してみてください。

逆に、よく使う #,##0yyyy/mm/dd などの基本コードは両方で同じように動きます。基本的な用途で困ることはありませんよ。

TIP

Googleスプレッドシート独自のTO_TEXT関数も覚えておくと便利です。書式コードの指定はできませんが、セルの値をそのまま文字列化します。単純な文字列変換ならTO_TEXT、書式を指定したいならTEXT関数と使い分けてみてください。

TEXT関数に関するよくある疑問

Q. TEXT関数で変換した値をソート(並べ替え)できる?

できますが注意が必要です。文字列としてソートされるため、数値の大小順にはなりません。「10」が「2」より前に来ます。ソートは元の数値列で行いましょう。

Q. TEXT関数で日付の「令和」表示はできる?

Googleスプレッドシートでは和暦の書式コードに対応していません。和暦表示が必要な場合は、YEAR関数で年を取り出して ="令和"&(YEAR(A1)-2018)&"年" のように手動で組み立てる方法があります。

Q. TEXT関数の結果が「#VALUE!」になるのはなぜ?

第1引数が文字列のときに起きます。TEXT関数は数値か日付を受け取る関数です。文字列は変換できません。セル参照先のデータ型を確認してみてください。

Q. 書式コードの大文字・小文字は区別される?

時刻の「HH」と「hh」は区別されます。「HH」は24時間表記、「hh」は12時間表記です。日付の「MM」と「mm」は区別されません。どちらも同じ動作です。

まとめ

TEXT関数は、数値や日付を指定した書式の文字列に変換する関数です。

ポイントを整理します。

  • 構文は =TEXT(数値, 表示形式) の2引数。第2引数に書式コードを指定する
  • 日付と文字を&で結合するとき、TEXT関数を挟めば「謎の数字」を回避できる
  • 書式コードは日付系(yyyy, mm, dd)・時刻系(HH, mm, ss)・数値系(#,##0)・曜日系(ddd, dddd)の4カテゴリ
  • 戻り値は文字列。計算に使うセルにはTEXT関数を適用しない
  • 計算用と表示用のセルを分けるのが実務のコツ
  • CONCATENATE関数TEXTJOIN関数と組み合わせれば、整形済みテキストの結合も自在

まずは =TEXT(A1, "yyyy年m月d日") で日付の変換から試してみてください。

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