【Excel】エクセルで数値を文字列に変換する方法(関数・一括)
Excelでは、見た目が同じ数字でも、計算に使える数値と文字列として扱われる数字では性質が異なります。
たとえば、先頭のゼロを残したい社員番号、長い注文番号、電話番号、コード番号などは、数値のままでは意図しない表示や計算結果になることがあります。
そこでこの記事では、関数、セルの書式設定、区切り位置、貼り付け、VBAなどを使い、Excelで数値を文字列に変換する方法を詳しく解説します。
少量のデータならTEXT関数、大量の既存データなら区切り位置、一括処理ならVBAというように、目的に合わせて方法を選ぶことが大切です。
サンプルデータは1行目に見出しがあり、2行目以降にデータが入力されている前提で説明します。
Excelで数値を文字列に変換する方法【TEXT関数】
それではまず、数値を別のセルで文字列へ変換するTEXT関数について解説していきます。
| A列 商品コード | B列 文字列化後 |
|---|---|
| 123 | 00123 |
| 456 | 00456 |
| 789 | 00789 |
TEXT関数は、元の数値を保持したまま、指定した表示形式の文字列を返す関数です。
基本の数式は、=TEXT(A2,”00000″)です。
この数式では、A2セルの数値を5桁の文字列として表示します。
TEXT関数の基本構文
TEXT関数の書式は、=TEXT(値,表示形式)です。
値には変換したい数値が入っているセルを指定し、表示形式には完成させたい文字列の桁数や見た目を指定します。
数値をそのまま文字列にしたいだけでも、TEXT関数は結果を文字列として返します。
たとえばA2セルに123が入力されている場合、=TEXT(A2,”0″)と入力すると、表示は123のままでもセルの種類は文字列になります。
先頭のゼロを付けたい商品コードでは、=TEXT(A2,”00000″)が便利です。
結果は00123となり、CSV出力や他システムへのデータ連携でもコードとして扱いやすくなります。

【操作のポイント】TEXT関数の結果は計算用の数値ではなく文字列になるため、合計や平均に使う列とは分けて管理しましょう。
桁数をそろえる数式
管理番号や伝票番号のように、すべての値を同じ桁数にそろえたい場面では、ゼロを並べた表示形式を使います。
4桁にそろえる場合は、B2セルに=TEXT(A2,”0000″)と入力します。
A2が7なら0007、A2が82なら0082、A2が1250なら1250になります。
表示形式のゼロの数が、文字列として出力したい桁数です。
入力した数値が指定桁数より多い場合、TEXT関数は値を切り捨てません。
たとえば表示形式を0000にしてA2が12345なら、結果は12345になります。
桁数を超えるデータを見つけたいときは、LEN関数で文字数を確認するとよいでしょう。

商品コードを必ず5桁にしたい場合は、=TEXT(A2,”00000″)を入力してから、フィルハンドルを下へドラッグしてコピーします。
【操作のポイント】数式をコピーする前に、参照セルがA2のような相対参照になっていることを確認しましょう。
日付や金額を文字列へ変換する方法
TEXT関数は、コード番号だけでなく日付や金額を文字列化する場合にも役立ちます。
たとえばA2に日付が入っている場合、=TEXT(A2,”yyyy/mm/dd”)と入力すると、2026/09/07のような文字列が返ります。
年月だけを使いたい場合は、=TEXT(A2,”yyyy年m月”)のように指定できます。
金額を文字列化する場合は、=TEXT(A2,”#,##0円”)と入力します。
TEXT関数では、見た目を整えた状態のまま文字列にできる点が大きなメリットです。
ただし、文字列化した金額はSUM関数の集計対象にならないことがあります。
元の数値列を残し、帳票用や出力用の列としてTEXT関数の列を作成する方法が安全です。
【操作のポイント】日付をTEXT関数で変換すると日付計算ができなくなるため、計算用の日付セルは別に残しておきましょう。
セルの書式設定による文字列入力【一括変換】
続いては、入力前にセルの表示形式を文字列へ変更する方法を確認していきます。
| A列 受付番号 | 文字列形式での表示 |
|---|---|
| 00128 | 00128 |
| 00041 | 00041 |
| 01005 | 01005 |
セルの表示形式を文字列に設定すると、その後に入力する数字を文字列として保存できます。
先頭ゼロを失いたくないデータは、入力前に対象列を文字列形式に設定することが基本です。
表示形式を文字列に変更する手順
まず、文字列として入力したい範囲または列全体を選択します。
ホームタブの表示形式ボックスをクリックし、一覧から文字列を選択します。
あるいは、選択範囲を右クリックしてセルの書式設定を開き、表示形式タブの分類から文字列を選んでも設定できます。
この状態で00128と入力すると、先頭のゼロが消えずに保存されます。

すでに数値が入力されているセルに文字列形式を適用しても、値そのものが直ちに文字列へ変わるわけではありません。
既存データを変換したい場合は、後述する区切り位置や数式を利用します。
【操作のポイント】書式設定は新規入力に有効な方法であり、入力済み数値の一括変換には別の操作が必要です。
先頭にアポストロフィを付ける方法
少数のセルだけをすぐ文字列にしたいときは、数字の先頭にアポストロフィを入力する方法があります。
たとえば、セルに’00128と入力すると、Excelでは00128が文字列として保存されます。
アポストロフィ自体は通常セルに表示されません。
手入力のコードを一時的に文字列化したい場合には、アポストロフィが手軽です。
一方で、多数のセルへ同じ作業を繰り返すと入力ミスが起こりやすくなります。
数百件以上のデータを扱う場合は、区切り位置や関数による一括変換の方が効率的でしょう。

【操作のポイント】アポストロフィはセルに直接入力する記号なので、数式バーでは先頭に付いていることを確認できます。
CSVデータを取り込む際の注意点
CSVファイルをダブルクリックで開くと、先頭ゼロ付きの番号が自動的に数値へ判定される場合があります。
この場合は、ExcelのデータタブからテキストまたはCSVからを選び、インポート画面で対象列の型を文字列に指定します。
郵便番号、電話番号、口座番号、バーコード、商品コードなどは、数値ではなく識別子として使われることが多い項目です。
識別子は計算対象ではないため、取り込み時点から文字列として扱うのが適切です。
CSVの元データを編集できるなら、対象値をダブルクォーテーションで囲む方法もあります。
例として、00128をCSVで保持したい場合は、”00128″のように記録します。
【操作のポイント】CSVを開く前に文字列列を指定すると、変換後に先頭ゼロを戻す手間を減らせます。
区切り位置を使った既存数値の文字列変換【一括操作】
続いては、すでに入力済みの数値をまとめて文字列に変換する区切り位置の操作を確認していきます。
| A列 変換前 | 変換後のセル種別 |
|---|---|
| 12345 | 文字列の12345 |
| 67890 | 文字列の67890 |
区切り位置は、本来は1つのセル内の文字列を列に分割する機能です。
しかし、区切らずに完了し、列のデータ形式を文字列に指定することで、既存の数値を一括変換できます。
入力済みの数字を値のまま文字列へ変えたい場合、区切り位置は特に実用的な方法です。
並べ替え
区切り位置
➤
データの入力規則
| A | B | C | |
|---|---|---|---|
| 1 | 注文番号 | ||
| 2 | 12345 | ||
| 3 | 67890 |
変換対象の範囲を選択する手順
まず、変換したい数値が並ぶセル範囲を選択します。
見出し行を含めず、2行目以降のデータ範囲を選択することが重要です。
たとえばA列のA2からA100までを変換する場合は、その範囲だけをドラッグします。
列全体を選ぶこともできますが、見出しや別の種類のデータが混在する場合は注意が必要です。
変換前に元ファイルを複製しておくと、データ型の違いによる不具合が起きても戻しやすくなります。
【操作のポイント】数値として計算に使う列まで変換しないよう、対象範囲を限定して選択しましょう。
区切り位置ウィザードで文字列を指定する方法
対象範囲を選択したら、データタブの区切り位置をクリックします。
区切り位置指定ウィザードが開いたら、最初の画面では区切り記号付きを選択したまま次へ進みます。
次の画面でも区切り記号は変更せず、そのまま次へ進みます。
最後の画面で、列のデータ形式から文字列を選択して完了をクリックします。
区切り位置を実行しても列を分割しなければ、セルの内容を保ったままデータ型だけ変更できます。
操作後は、セルを選択して数式バーを確認したり、左寄せ表示になったりすることで文字列化を確認できます。
【操作のポイント】最後の画面で標準のまま完了すると数値のままになるため、必ず文字列を選択します。
変換後に確認したい項目
文字列化できたかを確認するには、ISTEXT関数が使えます。
たとえばB2セルに=ISTEXT(A2)と入力し、TRUEと表示されればA2は文字列です。
=ISTEXT(A2)は、A2が文字列ならTRUE、数値ならFALSEを返す確認用の数式です。
また、セル左上に緑色の三角マークが表示され、数値が文字列として保存されていますというエラー表示が出ることがあります。
コードや識別番号として意図的に文字列化している場合、この表示は必ずしも修正すべきエラーではありません。
データの用途を確認し、計算用なら数値、照合用の番号なら文字列という基準で判断しましょう。
【操作のポイント】変換後にVLOOKUPやXLOOKUPを使う場合は、検索値と検索範囲のデータ型をそろえます。
貼り付けと演算によるデータ型の調整【値の変換】
続いては、貼り付け操作や演算を利用して数値と文字列の扱いを調整する方法を確認していきます。
| A列 元データ | B列 変換式 | 結果 |
|---|---|---|
| 123 | =A2&”” | 文字列の123 |
| 456 | =A3&”” | 文字列の456 |
数式の結果を値として残したい場合や、別表へコピーしながら形式を整えたい場合に有効な考え方です。
アンパサンドと空文字を使う数式
数値を簡単に文字列へ変換するには、=A2&””という数式を使えます。
アンパサンドは文字列を結合する演算子であり、数値に空の文字列を結合すると結果は文字列になります。
桁数の指定が不要で、数値をそのまま文字列として返したいときにはA2&””が簡潔です。
ただし、この方法では先頭ゼロを新たに付けることはできません。
00123のような固定桁数が必要なら、TEXT関数を使う方が適しています。
数値を文字列へ変えるだけなら=A2&””、5桁のコードに整えるなら=TEXT(A2,”00000″)と使い分けます。
【操作のポイント】アンパサンドの後に入れるダブルクォーテーションは半角で、間に文字を入れない空文字列にします。
形式を選択して貼り付ける方法
関数で作成した文字列を、数式ではなく固定値として残したい場合があります。
このときは、変換結果の範囲をコピーし、貼り付け先で形式を選択して貼り付けから値を選択します。
これにより、数式は消えて表示結果だけが貼り付けられます。
元データを置き換える場合は、変換列をコピーしてから元の列へ値貼り付けする方法もあります。
値貼り付けを行うと数式には戻せないため、元データのバックアップを残してから実行することが大切です。
置き換え後に不要になった補助列を削除すれば、表をすっきり整えられます。
【操作のポイント】コピー後は通常の貼り付けではなく、値の貼り付けを選んで数式を固定化しましょう。
文字列と数値が混在する場合の対処
同じ列に数値と文字列が混在すると、並べ替え、集計、検索で予想外の結果になることがあります。
たとえば、文字列の100と数値の100は見た目が同じでも、完全一致の検索では一致しないケースがあります。
変換前にISTEXT関数やISNUMBER関数を使うと、データ型の混在状況を確認できます。
=ISNUMBER(A2)はA2が数値ならTRUEを返し、=ISTEXT(A2)はA2が文字列ならTRUEを返します。
検索エラーを防ぐには、検索する側と検索される側の両方を同じデータ型にそろえることが必要です。
外部システムから取り込んだデータでは、見た目だけで判断せず、型を確認してから変換しましょう。
【操作のポイント】XLOOKUPやVLOOKUPで一致しないときは、最初に先頭ゼロとデータ型の違いを確認します。
VBAを使った大量データの文字列変換【自動化】
続いては、繰り返し発生する大量データの変換を自動化するVBAについて確認していきます。
| A列 対象範囲 | 処理内容 |
|---|---|
| A2:A1000 | 文字列形式へ一括変換 |
毎月同じ形のデータを処理する場合は、VBAで操作を記録または記述すると作業時間を短縮できます。
表示形式を文字列へ変更するVBA
対象セルの表示形式を文字列へ設定する基本的なVBAは、次のとおりです。
|
1 2 3 |
Sub 数値を文字列形式にする() Range("A2:A1000").NumberFormat = "@" End Sub |
このコードはA2からA1000の表示形式を文字列に設定します。
ただし、すでに入力済みの数値を確実に文字列値へ変換するには、値を入れ直す処理も必要になることがあります。
【操作のポイント】VBAを実行する前に対象範囲を確認し、必要ならRangeのA2:A1000を実際の範囲に変更します。
既存値を文字列として再設定するVBA
既存の数値を文字列として保存し直すには、各セルの値を文字列化して代入します。
|
1 2 3 4 5 6 7 8 9 10 |
Sub 既存数値を文字列に変換する() Dim cell As Range For Each cell In Range("A2:A1000") If cell.Value <> "" Then cell.NumberFormat = "@" cell.Value = CStr(cell.Value) End If Next cell End Sub |
CStrは値を文字列へ変換するVBA関数です。
VBAでは変換対象の列を限定し、空白セルを除外してから処理すると安全です。
先頭ゼロを付加する処理が必要なら、Format関数やTEXT関数と同様の考え方を組み合わせます。
【操作のポイント】VBA処理は元に戻せない場合があるため、必ずコピーしたブックで動作確認してから本番データへ適用しましょう。
固定桁のコードへ変換するVBA
数値を5桁の文字列へそろえたい場合は、Format関数を使います。
|
1 2 3 4 5 6 7 8 9 10 |
Sub 五桁コードに変換する() Dim cell As Range For Each cell In Range("A2:A1000") If cell.Value <> "" Then cell.NumberFormat = "@" cell.Value = Format(cell.Value, "00000") End If Next cell End Sub |
たとえば123は00123へ、8は00008へ変換されます。
一方で、5桁を超える値はそのまま表示されるため、事前にデータの桁数を確認しておくと安心です。
VBAは定型作業に強い反面、誤った範囲を指定すると大量の値を一度に変更してしまいます。
【操作のポイント】マクロを保存するブックは、Excelマクロ有効ブック形式で保存します。
まとめ エクセルで文字列に数値を変換する方法
Excelで数値を文字列に変換する方法は、データの量と目的によって選ぶと効率的です。
先頭ゼロを付けながら別列へ変換したい場合は、TEXT関数が適しています。
新しく入力する番号を文字列として扱いたい場合は、セルの表示形式を文字列に設定します。
すでに入力済みの数値を一括で文字列化したい場合は、区切り位置を使う方法が便利です。
数式結果を固定したいときは、値貼り付けを活用しましょう。
毎月大量のデータを同じルールで処理するなら、VBAによる自動化も選択肢になります。
特に商品コード、社員番号、郵便番号、電話番号などは、計算対象か識別番号かを見極めて、適切なデータ型で管理することが重要です。
変換後に検索や照合がうまくいかない場合は、先頭ゼロの有無だけでなく、数値と文字列のデータ型がそろっているかを確認してください。
用途に合った方法で数値を文字列に変換し、Excelのデータを正確に管理していきましょう。