エクセルで数字を文字列として扱いたいとき、そのまま結合しようとするとエラーになったり、ゼロ埋めした数字コードを表示したいのに先頭のゼロが消えてしまったりして困った経験はありませんか?
数字を文字列に変換する方法を正しく理解することで、日付や数値を自由な形式に変換して文章に組み込んだり、ゼロ埋めのコード番号を正しく表示したりできるようになります。
この記事では【Excel】エクセルで数字を文字列に変換する方法(TEXT関数・表示形式・0埋め・変換できない原因)について解説していきます。
ポイントは
・TEXT関数を使って数字を任意の書式の文字列に変換する方法
・ゼロ埋め・桁区切り・パーセント表示などの書式指定の方法
・セルの書式設定と文字列変換の違い
・数字が文字列に変換できない・意図通りに変換されない場合の対処法
です。
それでは詳しく見ていきましょう。
エクセルで数字を文字列に変換する方法の全体像
エクセルで数字を文字列に変換するアプローチは大きく3つあります。
1つ目はTEXT関数を使って数値を指定した書式の文字列に変換する方法、2つ目はセルの書式を「文字列」に変更してから数値を入力する方法、3つ目は数値の前にアポストロフィ(’)を付けて強制的に文字列として入力する方法です。
TEXT関数は数値を文字列として数式内で扱いたい場合に使い、セルの書式設定は入力前に文字列として認識させたい場合に使うという使い分けが基本です。
数字を文字列に変換する必要がある場面
数字を文字列に変換する必要がある代表的な場面を確認しておきましょう。
「2024年10月1日」のように日付を任意の書式の文字列に変換して文章に組み込みたい場合にTEXT関数が必要です。
「001・002・003」のようにゼロ埋めしたコード番号を表示したい場合も文字列変換が必要になります。通常の数値として入力すると先頭のゼロが自動的に消えてしまいます。
また「売上は1,234,567円です」のように数値を文章に埋め込みたい場合も、数値を文字列に変換してから連結する必要があります。

文字列変換と表示形式の違い
セルの表示形式を変更しても数値は数値のままであり、文字列として扱われるわけではありません。
たとえばセルの書式を「0000」に設定して数値「5」を入力すると「0005」と表示されますが、これは表示上のゼロ埋めであり、内部的には数値「5」のままです。
CONCATENATE関数や「&」演算子で他のセルと連結しようとすると、表示形式は無視されて元の数値「5」が結合されてしまいます。
文字列として別のセルと連結したり数式内で扱ったりする場合は、表示形式ではなくTEXT関数で実際に文字列に変換することが必要です。


エクセルのTEXT関数で数字を文字列に変換する方法
TEXT関数はエクセルで数値を文字列に変換する際に最もよく使われる関数です。
数値に書式記号を適用して、指定した形式の文字列として返します。
TEXT関数の基本的な使い方
TEXT関数の構文は以下の通りです。
書式文字列には表示形式のユーザー定義と同じ記号を使います。
たとえば「=TEXT(1234567, “#,##0”)」は「1,234,567」という文字列を返します。
「=TEXT(0.156, “0.0%”)」は「15.6%」という文字列を返します。
下記のような売上報告文を自動生成する場面でTEXT関数が活躍します。
| 商品名 | 売上金額(円) | 報告文(数式) |
|---|---|---|
| 桜餅 | 1234567 | =”売上は”&TEXT(B2,”#,##0″)&”円です” |
| カツオ | 987654 | =”売上は”&TEXT(B3,”#,##0″)&”円です” |
| マグロ | 2345678 | =”売上は”&TEXT(B4,”#,##0″)&”円です” |
| ハラス | 456789 | =”売上は”&TEXT(B5,”#,##0″)&”円です” |

TEXT関数の結果は文字列であるため、計算には使えません。計算用のセルと表示用のセルを分けて管理することが重要です。
ゼロ埋め(先頭ゼロ)の文字列を作る方法
商品コードや社員番号などで「001・002・003」のようにゼロ埋めした番号を作りたい場合はTEXT関数が便利です。
「=TEXT(A2, “000”)」と入力すると、A2の数値を3桁ゼロ埋めした文字列に変換します。
「1」は「001」、「12」は「012」、「123」は「123」になります。
4桁ゼロ埋めにしたい場合は「”0000″」、5桁なら「”00000″」と桁数に合わせて「0」の数を変えます。
アルファベットを組み合わせたコードを作りたい場合は以下のように連結します。
この数式でA2が「1」なら「SW-001」、「25」なら「SW-025」という文字列が生成されます。
日付・時刻をTEXT関数で文字列に変換する方法
日付や時刻の数値を任意の書式の文字列に変換する場合もTEXT関数が有効です。
| 数式例 | 変換結果 | 説明 |
|---|---|---|
| =TEXT(TODAY(),”yyyy年m月d日”) | 2025年4月1日 | 年月日の文字列 |
| =TEXT(TODAY(),”yyyy/mm/dd”) | 2025/04/01 | スラッシュ区切り |
| =TEXT(TODAY(),”m月d日(aaa)”) | 4月1日(火) | 曜日付き |
| =TEXT(A2,”hh:mm”) | 09:30 | 時刻を2桁表示 |
「令和○年○月○日」のような和暦表示には「=TEXT(TODAY(),”ggge年m月d日”)」を使います。
日付を文章に埋め込む場合は必ずTEXT関数で変換してから連結します。変換せずに連結するとシリアル値(数値)が表示されてしまいます。
エクセルでセルの書式を文字列に設定して数字を入力する方法
先頭にゼロがある数字をそのまま入力したい場合や、大きな数字を数値として計算対象にせず文字列として管理したい場合は、セルの書式を「文字列」に変更してから入力する方法が有効です。
セルを文字列書式に設定する手順
文字列として入力したいセル範囲を選択し、「ホーム」タブのリボン中央にある数値グループのプルダウンから「文字列」を選択します。
またはCtrl+1でセルの書式設定ダイアログを開き、「表示形式」タブで「文字列」を選択して「OK」をクリックします。

書式設定後にセルに「001」と入力すると先頭のゼロが消えずに「001」のまま表示されます。

下記のような商品コード管理表でゼロ埋めコードを管理する場合に活用できます。
| 商品名 | 商品コード(文字列) | 在庫数 | 単価(円) |
|---|---|---|---|
| アボカド | 001 | 40 | 180 |
| カボチャ | 002 | 25 | 250 |
| チョコ | 003 | 60 | 200 |
| ネジ | 004 | 500 | 30 |
文字列書式を設定してから入力した数字は数値として計算できないため、計算に使うセルには文字列書式を設定しないよう注意が必要です。
アポストロフィを使って文字列として入力する方法
セルの書式設定を変更せずに、数字の前にアポストロフィ(’)を付けて入力すると強制的に文字列として認識されます。
「’001」と入力すると「001」が文字列として保存され、先頭のゼロが表示されます。
アポストロフィ自体は表示されません。
この方法はセルに直接入力する際の簡易的な方法ですが、後から数値として使いたい場合は変換が必要になります。
既存の数値をVALUE・TEXT関数で変換する方法
文字列として保存された数字を数値に変換したい場合はVALUE関数を使います。
逆に数値を文字列に変換したい場合はTEXT関数のほかに「&””」で空の文字列を連結する方法もあります。
この方法はA2の数値に空の文字列を連結することで文字列に変換します。ただし書式は適用されず数値がそのまま文字列になるだけのため、書式付きで変換したい場合はTEXT関数を使います。
エクセルでTEXT関数の書式文字列の使い方と活用例
TEXT関数の書式文字列を使いこなすことで、さまざまな形式への変換が可能になります。
よく使う書式パターンを確認しておきましょう。
数値の表示に関する主な書式記号
数値の書式に使える主な記号は以下の通りです。
「0」はその桁に数字がない場合でも0を表示します。「#」はその桁に数字がない場合は何も表示しません。
「,」は桁区切りのカンマを表示します。「”#,##0″」で1,234,567のようなカンマ区切り表示になります。
「.」は小数点の位置を指定します。「”0.00″」で小数点以下2桁固定表示になります。
「%」は数値を100倍してパーセント記号を付けます。「”0.0%”」で15.6%のような表示になります。
「”円”」のように文字を「”」で囲むと書式内に任意の文字を挿入できます。「”#,##0″円””」で「1,234,567円」という文字列になります。
| 書式文字列 | 数値 | 変換結果 |
|---|---|---|
| “#,##0” | 1234567 | 1,234,567 |
| “0.00” | 3.5 | 3.50 |
| “0.0%” | 0.156 | 15.6% |
| “000” | 5 | 005 |
TEXT関数を使った実用的な文字列生成の例
TEXT関数を使って実務でよく使う文字列を生成する例を確認しましょう。
売上前年比を「前年比:115.3%」のような文字列で表示する場合は以下の数式を使います。

請求書の金額を「金額:¥1,234,567」のように表示したい場合は以下の通りです。

TEXT関数は書式の種類さえ覚えれば数値・日付・パーセントなどあらゆる形式の文字列に変換できる非常に汎用性の高い関数です。
数字が意図通りに変換されない場合の対処法
TEXT関数で変換した結果が意図と異なる場合の主な原因を確認しましょう。
書式文字列を日本語環境で入力する際に全角文字が混入していると正しく機能しない場合があります。書式記号はすべて半角で入力する必要があります。
日付のシリアル値ではなく数値を日付書式で変換しようとすると意図しない結果になります。日付として入力されているか確認しましょう。
TEXT関数の結果がエラー(#VALUE!)になる場合は、第一引数が数値ではなくテキストになっていないか確認します。
エクセルで数字を文字列に変換できない原因と対処法
文字列変換がうまくいかない場合のよくある原因と解決策を確認しておきましょう。
文字列書式を設定したのに先頭ゼロが消える場合
先にデータを入力してから後で書式を文字列に変更しても、すでに数値として認識されているため先頭ゼロは復元されません。
書式は入力前に設定する必要があります。
すでに入力してしまった場合は一度セルを削除して書式設定後に再入力するか、TEXT関数でゼロ埋め変換した結果を値として貼り付ける方法で対処します。
文字列書式の設定は必ずデータ入力前に行うことが重要です。
数値のまま連結すると書式が反映されない場合
書式設定で「#,##0」を設定したセルを「&」で他のテキストと連結すると、書式は無視されて元の数値が連結されます。

「=”売上:”&B2」と入力しても「売上:1234567」となり、カンマ区切りになりません。

カンマ区切りで連結したい場合は「=”売上:”&TEXT(B2,”#,##0″)」のようにTEXT関数を使う必要があります。

変換した文字列を数値として計算したい場合
TEXT関数で変換した文字列や文字列書式のセルの数字を計算に使いたい場合は、VALUE関数で数値に戻すことができます。
または「*1」を掛ける・「–」(マイナスの二重否定)を付けるという簡易的な方法でも数値に変換できます。
SUM関数やAVERAGE関数は文字列の数字を無視するため、文字列書式のセルが含まれる範囲での集計は正しく行われない場合があります。
| 症状 | 原因 | 対処法 |
|---|---|---|
| 先頭ゼロが消える | 入力後に書式変更 | 書式設定後に再入力 |
| 連結で書式が反映されない | 数値のまま連結 | TEXT関数で変換してから連結 |
| SUM関数で集計されない | 文字列書式の数字 | VALUE関数で数値に変換 |
| TEXT関数がエラー | 全角の書式記号 | 書式記号をすべて半角で入力 |
まとめ エクセルで数字を文字列に変換する方法(TEXT関数・表示形式・0埋め・変換できない原因)
エクセルで数字を文字列に変換する方法をまとめると、以下の通りです。
・変換の3つの方法:TEXT関数・セルを文字列書式に設定・アポストロフィ付き入力の3つを用途に合わせて使い分ける
・TEXT関数の基本:「=TEXT(数値, 書式文字列)」で数値を指定書式の文字列に変換。結果は文字列なので計算には使えない
・ゼロ埋め:TEXT関数で「”000″」形式を指定。セルを文字列書式にしてから入力する方法も有効
・日付の文字列変換:TEXT関数で「”yyyy年m月d日”」などの書式を指定して文章に埋め込める
・書式記号:「#」「0」「,」「.」「%」などを組み合わせて任意の形式に変換できる。すべて半角で入力する
・変換できない場合:先頭ゼロは入力前に書式設定が必要。連結時の書式反映はTEXT関数を使う。文字列の数字をSUMで集計したい場合はVALUE関数で数値に戻す
TEXT関数の書式文字列をマスターすることで、数値・日付・パーセントなどあらゆるデータを意図した形式の文字列に変換できるようになります。
まずはカンマ区切り「”#,##0″」・ゼロ埋め「”000″」・日付「”yyyy年m月d日”」の3パターンから覚えて活用していきましょう。


コメント