TEXT関数の使い方|数値や日付を好きな形式の文字列にする

執筆者:

カテゴリ:

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

「2026/4/1」を「2026年4月1日(水)」にする、1234567¥1,234,567 にする、といった変換ができます。

書式設定(表示形式)との違いは、TEXTが文字列そのものを作る点です。他の文字列と連結できる代わりに、計算には使えなくなります。

書式

=TEXT(値, "書式")

書式は必ず " で囲みます。

日付の書式

書式 結果(2026年4月1日 水曜の場合)
"yyyy/mm/dd" 2026/04/01
"yyyy年m月d日" 2026年4月1日
"yy/m/d" 26/4/1
"mm/dd" 04/01
"m月d日" 4月1日
"aaa"
"aaaa" 水曜日
"ddd" Wed
"dddd" Wednesday
"yyyy年m月d日(aaa)" 2026年4月1日(水)

m を1つにすると1桁のとき「4」、2つにすると「04」になります。

曜日を取り出すのがTEXTの最頻出の用途です。

=TEXT(A1, "aaa")   → 水

WEEKDAY で番号を取って SWITCH で変換する方法もありますが、TEXTのほうが圧倒的に短く書けます。

時刻の書式

書式 結果(15:05:30の場合)
"h:mm" 15:05
"hh:mm:ss" 15:05:30
"h時m分" 15時5分
"[h]:mm" 経過時間として24時間超も表示

[h] は重要です。 通常の h は24時間で0に戻りますが、[h] なら「30:00」のように24時間を超えた表示ができます。勤務時間の合計を出すときに必須です。

=TEXT(SUM(B2:B100), "[h]:mm")

数値の書式

書式 結果(1234567.891の場合)
"#,##0" 1,234,568
"#,##0.00" 1,234,567.89
"¥#,##0" ¥1,234,568
"0.0%" (0.156なら)15.6%
"0000" (42なら)0042

0# の違い

  • 0 … 桁がなくても0を表示する
  • # … 桁がなければ何も表示しない

"0000"桁を揃えるゼロ埋めに使います。商品コードや伝票番号の整形で便利です。

=TEXT(A1, "0000")   → 42 が 0042 になる

正負で表示を変える

セミコロンで区切ると、正の数・負の数・ゼロで書式を分けられます。

=TEXT(A1, "#,##0;▲#,##0;-")

正なら 1,234、負なら ▲1,234、ゼロなら - になります。会計資料でよく使われる形式です。

文字列との連結

TEXTの主な用途がこれです。& で日付や数値をそのままつなぐと、内部の数値(シリアル値)が出てしまいます。

="更新日:" & A1        → 更新日:46113   (シリアル値)
="更新日:" & TEXT(A1, "yyyy/m/d")   → 更新日:2026/4/1

日付や金額を文章に混ぜるときは、必ずTEXTで包んでください。

表示形式との使い分け

表示形式(メニュー) TEXT関数
中身 数値のまま 文字列になる
計算に使える 使える 使えない
他の文字列と連結 シリアル値が出る きれいに連結できる
並べ替え 正しく並ぶ 文字列順になる

原則は「表示形式を使う」です。 TEXTを使うのは、文字列として連結したいときだけにしてください。

TEXTで作った日付を並べ替えると、2026/1/1 より 2026/10/1 が先に来ます。文字列として比較されるためです。集計や並べ替えの対象になる列にTEXTを使うと、後で必ず困ります。

文字列を数値に戻す

TEXTの結果を計算に使いたくなったら、VALUE で戻します。

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

ただし、そもそもTEXTを挟まないほうが確実です。

Excelとの違い

基本の書式指定は共通です。 ただし、いくつか違いがあります。

書式 Excel スプレッドシート
"aaa"(日本語の曜日) 使える 使える
"ggge年"(和暦) 使える 使えない
[h](24時間超) 使える 使える

和暦(令和・平成)はスプレッドシートのTEXTでは扱えません。 必要なら IFS や対応表で自作するか、Excelを使ってください。

また、ロケール設定によって書式記号の解釈が変わることがあります。ファイルの設定を「日本」にしておくと想定通りに動きます。

よくある失敗

結果が左寄せになって計算できない

TEXTは文字列を返します。 これは仕様です。計算する列には使わないでください。

並べ替えがおかしい

文字列として比較されています。元の日付列で並べ替えてください。

書式が効かない

  • – 書式を " で囲んでいない
  • – 対象が日付ではなく文字列になっている(左寄せになっていないか確認)

日付が文字列だと、TEXTは何もできません。まず DATEVALUE で日付に変換してください。

#VALUE! が出る

対象が数値でも日付でもない文字列です。

まとめ

  • – 書式は =TEXT(値, "書式")
  • 曜日は "aaa" が最短。TEXTの最頻出用途
  • 24時間超の時間は [h]:mm
  • – ゼロ埋めは "0000"
  • 結果は文字列になり、計算・並べ替えに使えない
  • – 見た目を変えるだけなら表示形式(メニュー)を使う

関連する関数

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です