Excelで日付や金額の見た目を整えるとき、多くの人は「セルの書式設定」を使います。ところが、その日付や金額を別の文字列と結合して1つのセルに表示したい場合、書式設定だけでは対応できません。たとえば「2026年4月分請求書」のように日付と固定文字列を1セルにまとめたい場合や、CONCAT・TEXTJOIN関数で複数セルを結合する際に日付部分だけ数字の羅列(シリアル値)になってしまう場合に必要になるのがTEXT関数です。この記事では、TEXT関数の書式コードの意味と、実務でつまずきやすいポイントを解説します。

TEXT関数の基本構文

TEXT関数は、数値や日付を指定した「書式コード」に従って文字列に変換する関数です。第1引数に変換したい値、第2引数に書式コードを文字列("")で指定します。

=TEXT(値, 書式コード)

例:請求日(A2)を「2026年4月」という文字列にしたい場合
=TEXT(A2,"yyyy年m月") → 2026年4月
金額(B2)を「¥12,000」という文字列にしたい場合
=TEXT(B2,"¥#,##0") → ¥12,000
請求日と件名を1セルに結合したい場合
=TEXT(A2,"yyyy年m月")&"分ご請求書" → 2026年4月分ご請求書

よく使う書式コード一覧

TEXT関数の書式コードは、セルの表示形式の設定画面(ユーザー定義)に出てくる書式記号と共通です。よく使うものを以下にまとめます。

用途書式コード結果の例(2026/4/1・12000)
年月日yyyy/m/d2026/4/1
年月(和文)yyyy年m月2026年4月
曜日(漢字1文字)aaa水
曜日(フル)aaaa水曜日
3桁区切りの数値#,##012,000
円マーク付き金額¥#,##0¥12,000
パーセント表示0.0%(0.5なら)50.0%
0埋めの3桁コード000(5なら)005

「#」は「数値があればその桁を表示し、なければ何も表示しない」記号、「0」は「数値がなくてもその桁を0として表示する」記号です。伝票番号を「005」のように必ず3桁で0埋め表示したい場合は「000」、金額のように余分な0を表示したくない場合は「#,##0」を使う、という使い分けを覚えておくと書式コード選びに迷いません。

セルの表示形式との違い

セルの表示形式(書式設定)

  • セルの中身(数値・日付)は変わらず見た目だけ変わる
  • そのままSUM等の計算に使える
  • 他の文字列と結合すると数字の羅列に戻る

TEXT関数

  • 結果は文字列になり、別セルに取り出せる
  • そのままでは計算に使えない
  • CONCAT・TEXTJOIN・&での結合に強い

印刷帳票の見た目だけを整えたいならセルの表示形式で十分ですが、日付・金額を他の文言と1つの文章として組み立てたい場合は、TEXT関数を使う必要があります。

実務でのよくある使用シーン

経理担当者であれば、請求書のタイトルセルに「=TEXT(発行日,"yyyy年m月")&"分ご請求書"」のように数式を組み、発行日を変えるだけでタイトル文言が自動で更新される仕組みを作れます。総務担当者であれば、WEEKDAY関数の代わりにTEXT関数で「aaa」書式を使い、シフト表や会議室予約表の日付列に「4/1(水)」のような曜日付き表示を1つの数式で作ることができます。営業事務であれば、見積書番号を「=TEXT(連番,"000")」で常に3桁の0埋め表示にし、取引先ごとの番号ルールを統一する場面にも使われます。

TEXT関数でよくあるエラー・トラブルと対処法

TEXT関数の結果をSUM関数に入れても計算されない

TEXT関数が返すのは常に文字列です。見た目が「12,000」のように数値らしく見えても、Excel内部ではテキストとして扱われるため、SUM・AVERAGEなどの計算関数に範囲として含めても無視されるか、SUMではエラーにならず単に無視されて合計が想定より小さくなります。

例:=TEXT(B2,"#,##0")の結果が入ったセルをSUM範囲に含めても、その値は合計されない

対処法として、集計に使う数値は加工前の元セル(数値セル)を参照するようにし、TEXT関数の結果は表示専用のセルとして分けて管理してください。どうしても文字列を数値に戻す必要がある場合はVALUE関数を使います。

書式コードの綴りミスでエラーにはならないが表示が崩れる

TEXT関数は書式コードの指定を間違えても#VALUE!のようなエラーにはならず、意図しない文字列をそのまま返してしまうことがあります。特に「yyyy」を「YYYY」のように大文字にしてもExcelでは同じ意味になりますが、コードの綴り自体を間違える(例:年を表す"y"を"Y"以外の文字にしてしまう)と、想定と違う結果になります。

誤り例:書式コードのダブルクォーテーションを付け忘れて=TEXT(A2,yyyy年m月)と入力するとエラーになる

書式コードは必ず半角のダブルクォーテーションで囲み、実際にセルに表示させて目視で確認する癖をつけてください。特に和暦表示など複雑な書式コードほど、思わぬ表示崩れが起きやすくなります。

全角のカンマ・記号を書式コードに使ってエラーになる

日本語入力モードのまま書式コードを入力すると、桁区切りのカンマや記号が全角になってしまい、Excelが書式コードとして認識できず#VALUE!エラーやエラー表示になることがあります。

誤り例:=TEXT(B2,"¥#,##0")のように全角記号が混ざっている

書式コードを入力する際は半角英数モードに切り替えるか、既存の正しい数式をコピーして数値部分だけ書き換える方法が安全です。

初心者がつまずきやすいポイントとコツ

まとめ

TEXT関数は、数値や日付を書式コードに従って自由な形の文字列に変換できる関数です。セルの表示形式が「見た目だけを変える」機能であるのに対し、TEXT関数は「文字列そのものを作り出して他の文言と結合できる」点が最大の違いです。請求書のタイトル自動生成や、曜日・金額を含んだ帳票の作成など、日付や数値と文章を組み合わせたい場面で威力を発揮します。ただし変換後は文字列になるため計算には使えない、という点だけ押さえておけば、事務作業の自由度を大きく広げてくれる関数です。

よくある質問

TEXT関数で作った文字列を、そのままSUM関数などで計算できますか?
できません。TEXT関数の戻り値は見た目が数値のように見えても文字列(テキスト)です。SUM・AVERAGEなどの計算関数にそのまま渡すと、無視されるか0として扱われ、意図した合計になりません。TEXT関数はあくまで「表示・結合用の文字列」を作る関数であり、計算にはもとの数値セルを使うか、必要であればVALUE関数で数値に戻してから計算してください。
セルの表示形式(右クリック→セルの書式設定)とTEXT関数は何が違うのですか?
セルの表示形式は、セルの中身(数値・日付)自体はそのままに、見た目の表示だけを変える機能です。一方TEXT関数は、数値や日付を書式コードに従って文字列に変換し、その文字列自体を別のセルに結果として取り出す関数です。「2026年4月1日 締切分」のように日付と文字列を1つのセルに結合したい場合や、CONCAT・TEXTJOINで日付を他の文字列とつなげたい場合は、表示形式だけでは対応できないためTEXT関数が必要になります。
西暦を令和などの和暦表示にするにはどうすればいいですか?
TEXT関数の書式コードに "ge.m.d" や "ggge年m月d日" を指定すると、日付を和暦表示の文字列に変換できます。「gg」は元号を1文字(例:R)、「ggg」は元号を正式名称(例:令和)で表示する指定です。ただしこれはWindows版Excelの和暦カレンダー機能に依存する表示のため、環境によっては正しく変換されない場合があります。重要な書類で使う前に、実際の表示結果を必ず確認してください。

関連記事

→ 文字列・日付の数式を作ってみる ← 記事一覧に戻る