Excelで数値を文字列に変換したいときはないでしょうか。
けど、そんな中で悩むことは、
・数値を桁区切りやカンマ付きで表示したい
・日付を和暦や曜日付きの文字列にしたい
・文字列にすると計算できなくなるのが不安
ですよね。
今回はそんなお悩みを解決する
についてまとめます!
完成イメージ
数値を文字列にしたい場面は、商品コードの0埋め、数量の桁区切り、日付の和暦・曜日付き表示などさまざまです。
実はこれ、TEXT関数の「表示形式」を変えるだけで思い通りに変換できます。
今回は
・TEXT関数で数値を思い通りの見た目の文字列に変換する方法(=TEXT(値, 表示形式))
をゴールにします。
0埋めコードや和暦の表示が、数式1つでスッと作れるようになります。
なお、見た目を変えずに文字列にする「&””」や、TEXTだと計算できなくなる点もご紹介します。
あわせて、VBAでの一括変換(Format/CStr)と、うまくいかないときの対処法(トラブルシュート)もまとめました。
早速実装して試してみましょう!

上の画像が完成形です。数値と日付が、TEXT関数で0埋め・桁区切り・和暦・曜日付きの文字列に変換されています。
もくじ
STEP1. 数値と日付のデータを用意する
まずは変換したい数値と日付のデータを用意します。
A列が商品コード(数値)、D列が登録日(日付)です。
E列からH列は、これから数式で文字列に変換して表示するための空欄です。
この空欄を、これから自動で埋めていきましょう。

下の表をコピーして、Excelのシートに貼り付けるとそのまま試せます。
| 商品コード | 商品名 | 数量 | 登録日 | 0埋めコード | 桁区切り数量 | 和暦 | 曜日付き |
|---|---|---|---|---|---|---|---|
| 101 | ノートPC | 12 | 2024/4/1 | ||||
| 102 | モニター | 5 | 2024/4/3 | ||||
| 103 | キーボード | 28 | 2024/4/5 | ||||
| 104 | マウス | 150 | 2024/4/8 | ||||
| 105 | プリンタ | 3 | 2024/5/10 | ||||
| 106 | ノートPC | 1200 | 2024/5/20 | ||||
| 107 | モニター | 14 | 2024/6/1 | ||||
| 108 | キーボード | 7 | 2024/6/15 | ||||
| 109 | マウス | 320 | 2024/7/7 | ||||
| 110 | プリンタ | 2 | 2024/7/21 |
※ 数式で求める列は空にしています。すでに値が入っている列はそのまま残して試せます。
STEP2. TEXT関数で0埋めコードを作る
数値を思い通りの見た目の文字列に変えるのがTEXT関数です。
書式は =TEXT(値, 表示形式) で、1つ目の引数に変換したいセル、2つ目の引数に「どんな見た目にしたいか」を指定します。
まずは商品コードを5桁の0埋めにしてみましょう。
E2セルを選んで、次の数式を入力します。
=TEXT(A2,"00000")
2つ目の引数「”00000″」は「5桁に満たない分は0で埋める」という意味です。
実際の入力画面がこちらです。

STEP3. 実行結果を確認する
E2セルに 00101 と表示されました。
元の商品コードは 101 なので、足りない桁が0で埋められています。
E2セルの数式をE11セルまでコピーして、すべての行に反映しましょう。
数値を入れるだけで勝手に0埋めされるので、手入力のミスも防げます。

STEP4. 桁区切りにする
同じTEXT関数で、今度は数値に桁区切り(カンマ)を付けてみます。
F2セルに次の数式を入力して、F11セルまでコピーします。
=TEXT(C2,"#,##0")
書式の「#,##0」は、3桁ごとにカンマを入れて表示する指定です。
1200 だった数量が 1,200 と表示され、パッと見て桁が分かるようになりました。

STEP5. 日付を和暦・曜日付きにする
TEXT関数は日付にも使えます。
日付のセルに書式を指定すると、自由な形式の文字列に変換できます。
G2セルに和暦の数式を入力します。
=TEXT(D2,"ggge年m月d日")
「gge」は元号、「m」「d」は月日を表します。
2024/4/1 が 令和6年4月1日 に変換されました。
次に、H2セルへ曜日付きの数式を入力します。
=TEXT(D2,"yyyy/m/d(aaa)")
「aaa」は曜日を表し、2024/4/1(月) のように表示されます。
それぞれG11セル・H11セルまでコピーしましょう。

STEP6. 文字列にするだけなら「&」を使う
書式を変えず、単純に数値を文字列にしたいだけなら、演算子の「&」が手軽です。
セルの後ろに &”" を付けるだけで、その値は文字列になります。
下の確認表の1行目が元の数値、2行目が「&”"」で文字列にした結果です。
見た目は同じ「101」でも、ISNUMBERで調べるとFALSE(=数値ではない)になっています。

STEP7. TEXTは数値として扱えなくなる
TEXT関数のいちばんの注意点は、戻り値が文字列になることです。
下の確認表を見てください。
「0埋めコード」は見た目は数値のようでも、ISNUMBERは FALSE を返します。
そして、文字列になったセルをSUMで合計しても 0 になってしまいます。
数値として計算にも使いたいときは、次のいずれかで元に戻してください。
・=VALUE(E2) で数値に変換する
・=E2*1 のように計算を1回挟む
見た目だけ整えたいときは、セルの表示形式を使うのがおすすめです。

TEXT関数は =TEXT(値, 表示形式) で数値を文字列に変換します。
0埋めは “00000”、桁区切りは “#,##0”、和暦は “ggge年m月d日” が定番の書式です。
戻り値は文字列なので、そのままでは計算に使えません。計算に使うならVALUEで数値に戻しましょう。
4つの方法の比較
数値を文字列にする方法はいくつかあります。
目的に合わせて使い分けると迷いません。
| 方法 | できること | 戻り値 | 向いている場面 |
|---|---|---|---|
| TEXT関数 | 指定した表示形式で文字列に変換 | 文字列 | 0埋め・桁区切り・和暦など見せ方も変えたいとき |
| &”" 演算子 | 見た目を変えずそのまま文字列に変換 | 文字列 | 見せ方は変えず文字列にしたいとき |
| セルの表示形式 | 見た目だけを変える(中身は数値のまま) | 数値のまま | 計算もできる状態で見た目だけ整えたいとき |
| VBA(Format/CStr) | 複数セルをまとめて一括変換 | 文字列 | 大量データや定期的な変換 |
VBAで一括変換する
件数が多いときや、毎回同じ変換をするときはVBAで一括処理するのがラクです。
Alt+F11でVBAエディターを開き、標準モジュールに次のコードを貼り付けます。
Sub NumToText()
Dim r As Long
Dim lastRow As Long
lastRow = Cells(Rows.Count, 1).End(xlUp).Row
For r = 2 To lastRow
Cells(r, 5).Value = Format(Cells(r, 1).Value, "00000")
Cells(r, 6).Value = Format(Cells(r, 3).Value, "#,##0")
Cells(r, 7).Value = Format(Cells(r, 4).Value, "ggge年m月d日")
Cells(r, 8).Value = CStr(Cells(r, 4).Value)
Next r
End Sub
実行すると、E列からH列に変換後の文字列が入ります。
VBAの Format は、関数の TEXT とまったく同じ書式が使えます。
書式を指定せず、ただ文字列にしたいだけなら CStr を使います。
ボタンに登録しておけば、クリック1つで一括変換できるようになります。
VBAでは同じ役割を Format と CStr が担当します。
覚えることが2つだけなのでカンタンですね。
うまくいかないときの対処法(トラブルシュート)
実際に試すと、思ったように動かないこともあるかもしれません。
よくあるつまずきと対処法をまとめました。
| 症状 | 原因 | 対処 |
|---|---|---|
| TEXTの結果を合計したら0になる | 戻り値が文字列で、SUMが数値として数えない | 数値に戻すなら =VALUE(セル) または =セル*1 |
| 「00101」にならず「101」と出る | 元の値がすでに文字列になっている | =TEXT(VALUE(A2),”00000″) で数値に直してから変換する |
| 和暦にならず西暦のまま出る | 元の日付が文字列で入力されている | =TEXT(DATEVALUE(D2),”ggge年m月d日”) で日付化してから変換する |
| 曜日が「(月)」ではなく英語になる | 「aaa」が環境によって英語表示になる | 書式を “aaaa” や「(aaa)」で指定し直す/日本語Excelで使う |
| 桁区切りが付かない | 書式が「#,##0」になっていない | 書式を半角で “#,##0” と指定し直す |
関数の説明
今回使う2つの関数の概要です。
どちらも数値と文字列の変換でよく使う関数なので、違いを押さえておきましょう。
TEXT関数(テキスト)
| 書式 | =TEXT(値, 表示形式) |
|---|---|
| できること | 数値や日付を、指定した表示形式の文字列に変換します。 |
| 戻り値 | 文字列(数値ではありません) |
| こんなときに | 「00101」のような0埋め、桁区切り、和暦・曜日付きなど、見せ方を変えて文字列にしたいとき。 |
| 注意 | 戻り値は文字列なので、そのままでは計算に使えません。数値に戻すには VALUE を使います。 |
=TEXT(A2,"00000")
VALUE関数(バリュー)
| 書式 | =VALUE(文字列) |
|---|---|
| できること | 文字列として入力された数値を、数値に変換します。 |
| 戻り値 | 数値 |
| こんなときに | TEXTで文字列にした値を、もう一度計算に使いたいとき。 |
| 注意 | 「00101」のように先頭に0があると、数値に戻すと 101 になり0は消えます。 |
=VALUE(E2)
完成
E列からH列に、変換後の文字列が入りました。
商品コードは 00101 と0埋めされ、数量は 1,200 と桁区切り、日付は 令和6年4月1日 や 2024/4/1(月) になりました。
思ったとおりに動きましたか?
数式で作っておけば、元の数値を書き換えても変換結果が自動で追従します。
毎回の整形作業が、ぐっとラクになりますね。

さいごに
いかがでしょうか。
今回は、
についてまとめました。
数値を思い通りの見た目の文字列にしたいときは、TEXT関数の書式を変えるだけで自由に変換できます。
見せ方を変えずに文字列にするだけなら &”" が手軽です。
まずは今回のサンプル表で、ぜひ一度試してみてください。
0埋めコードや和暦の表示も、あわせて覚えておくと日々の資料づくりがラクになりますよ。
また、他にも便利なExcelの時短テクニックがありますので、よろしければご参照頂ければと思います。
ぜひ試してみてください。










コメントを残す