Excelで数値を文字列に変換する方法!TEXT関数の使い方をやさしく解説!

Excelで数値を文字列に変換する方法!TEXT関数の使い方をやさしく解説!
Excelで数値を文字列に変換したいときはないでしょうか。

けど、そんな中で悩むことは、

・「00101」のように0埋めする方法が分からない
・数値を桁区切りやカンマ付きで表示したい
・日付を和暦や曜日付きの文字列にしたい
・文字列にすると計算できなくなるのが不安

ですよね。

今回はそんなお悩みを解決する

・Excelで数値を文字列に変換する方法(TEXT関数と&””)

についてまとめます!

完成イメージ

数値を文字列にしたい場面は、商品コードの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で埋める」という意味です。
実際の入力画面がこちらです。
TEXT関数の入力画面

STEP3. 実行結果を確認する

E2セルに 00101 と表示されました。
元の商品コードは 101 なので、足りない桁が0で埋められています。
E2セルの数式をE11セルまでコピーして、すべての行に反映しましょう。
数値を入れるだけで勝手に0埋めされるので、手入力のミスも防げます。
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は数値として計算できない

POINT

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つで一括変換できるようになります。

タカヒロ

タカヒロ
見た目を変えたいなら TEXT、見た目はそのままで文字列にしたいなら &”" と覚えると整理しやすいですよ。
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(月) になりました。
思ったとおりに動きましたか?
数式で作っておけば、元の数値を書き換えても変換結果が自動で追従します。
毎回の整形作業が、ぐっとラクになりますね。
完成した表

さいごに

いかがでしょうか。

今回は、

・Excelで数値を文字列に変換する方法(TEXT関数と&”")

についてまとめました。

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

ぜひ試してみてください。



この記事の関連キーワード

こちらの記事の関連キーワード一覧です。クリックするとキーワードに関連する記事一覧が閲覧できます。






コメントを残す

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

CAPTCHA ImageChange Image