Excelで日付や金額の見た目を整えるとき、多くの人は「セルの書式設定」を使います。ところが、その日付や金額を別の文字列と結合して1つのセルに表示したい場合、書式設定だけでは対応できません。たとえば「2026年4月分請求書」のように日付と固定文字列を1セルにまとめたい場合や、CONCAT・TEXTJOIN関数で複数セルを結合する際に日付部分だけ数字の羅列(シリアル値)になってしまう場合に必要になるのがTEXT関数です。この記事では、TEXT関数の書式コードの意味と、実務でつまずきやすいポイントを解説します。
TEXT関数の基本構文
TEXT関数は、数値や日付を指定した「書式コード」に従って文字列に変換する関数です。第1引数に変換したい値、第2引数に書式コードを文字列("")で指定します。
例:請求日(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/d | 2026/4/1 |
| 年月(和文) | yyyy年m月 | 2026年4月 |
| 曜日(漢字1文字) | aaa | 水 |
| 曜日(フル) | aaaa | 水曜日 |
| 3桁区切りの数値 | #,##0 | 12,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関数が返すのは常に文字列です。見た目が「12,000」のように数値らしく見えても、Excel内部ではテキストとして扱われるため、SUM・AVERAGEなどの計算関数に範囲として含めても無視されるか、SUMではエラーにならず単に無視されて合計が想定より小さくなります。
対処法として、集計に使う数値は加工前の元セル(数値セル)を参照するようにし、TEXT関数の結果は表示専用のセルとして分けて管理してください。どうしても文字列を数値に戻す必要がある場合はVALUE関数を使います。
TEXT関数は書式コードの指定を間違えても#VALUE!のようなエラーにはならず、意図しない文字列をそのまま返してしまうことがあります。特に「yyyy」を「YYYY」のように大文字にしてもExcelでは同じ意味になりますが、コードの綴り自体を間違える(例:年を表す"y"を"Y"以外の文字にしてしまう)と、想定と違う結果になります。
書式コードは必ず半角のダブルクォーテーションで囲み、実際にセルに表示させて目視で確認する癖をつけてください。特に和暦表示など複雑な書式コードほど、思わぬ表示崩れが起きやすくなります。
日本語入力モードのまま書式コードを入力すると、桁区切りのカンマや記号が全角になってしまい、Excelが書式コードとして認識できず#VALUE!エラーやエラー表示になることがあります。
書式コードを入力する際は半角英数モードに切り替えるか、既存の正しい数式をコピーして数値部分だけ書き換える方法が安全です。
初心者がつまずきやすいポイントとコツ
- 「表示を変えたいだけ」か「文字列として使いたい」かを最初に決める。印刷や画面表示だけを整えたいならセルの表示形式で十分で、TEXT関数を使う必要はありません。他の文字列と結合したい場合にだけTEXT関数を使いましょう。
- 書式コードはセルの表示形式の「ユーザー定義」画面で試してから使う。先にセルの書式設定でユーザー定義のコードを試し、思い通りの表示になったコードをそのままTEXT関数の第2引数にコピーすると失敗が減ります。
- 結合した結果は文字列であることを忘れない。見た目が数値・日付らしくても、TEXT関数を通した時点でその値は計算にも日付の比較にも使えなくなります。
- 和暦や曜日など複雑な書式は必ず表示結果を目視確認する。環境やExcelのバージョンによって和暦表示の挙動が異なる場合があるため、重要書類で使う前には必ず確認しましょう。
まとめ
TEXT関数は、数値や日付を書式コードに従って自由な形の文字列に変換できる関数です。セルの表示形式が「見た目だけを変える」機能であるのに対し、TEXT関数は「文字列そのものを作り出して他の文言と結合できる」点が最大の違いです。請求書のタイトル自動生成や、曜日・金額を含んだ帳票の作成など、日付や数値と文章を組み合わせたい場面で威力を発揮します。ただし変換後は文字列になるため計算には使えない、という点だけ押さえておけば、事務作業の自由度を大きく広げてくれる関数です。
よくある質問
関連記事
- CONCAT・TEXTJOIN関数で文字列を結合する方法|区切り文字が連続する原因と対処法
- YEAR・MONTH・DAY関数の使い方|年度集計がずれる原因と直し方
- EDATE・EOMONTH関数で契約更新日・支払期日を自動計算する方法|#NUM!エラーの原因と対処法
- WEEKDAY関数で土日・祝日を自動で色分けする方法|条件付き書式との組み合わせとよくある失敗