Excelで商品コードや社員コードの先頭の「0」が消えて困ったことはないでしょうか。
けど、そんな中で悩むことは、
・先頭の0をどうやって残せばいいかわからない
・消えてしまった0を元に戻す方法がわからない
ですよね。
今回はそんなお悩みを解決する
についてまとめます!
完成イメージ
商品コードや社員コードのように先頭に0が付くコードは、そのまま入力すると数値とみなされ、0が消えてしまいます。
今回は
・先頭の0を消さずに表示・管理する方法5選
をゴールにします。
こちらが完成形です。数値として入力したコードでも、書式やTEXT関数を使えば先頭の0を残したまま管理できます。

また、すでに入力してしまって0が消えたデータを復元する方法や、
CSVを開くたびに化けるときの対処法(トラブルシュート)もあわせてご紹介します。
もくじ
STEP1. 元データを確認する
まずは商品コードの一覧を用意します。
A列には、うっかり「0123」と入力してしまったコードが並んでいます。
このように先頭に0が付く数字は、Excelが数値と判断して0を消してしまうんですね。
C列〜E列には、0を残すための方法をそれぞれ用意しました。

方法① 文字列として入力する(’アポストロフィ)
もっとも手軽なのが、コードの先頭に‘(アポストロフィ)を付けて入力する方法です。
たとえば ‘0123 と入力すると、表示は 0123 のまま、中身は文字列として保存されます。
アポストロフィ自体は画面に表示されないので、見た目もすっきりします。
1件だけ手入力するときに向いている方法で、カンタンですね。

方法② セルの書式を「文字列」にしてから入力する
入力する前に、セルの書式を文字列に変えておく方法です。
セルを選んで Ctrl+1 で「セルの書式設定」を開き、「表示形式」タブで文字列を選びます。
あとは普通に「0123」と入力するだけで、0が残ります。
複数セルをまとめて文字列にしておけるので、これから入力するデータに便利です。
ショートカットの Ctrl+1 を覚えておくと操作が速くなります。

方法③ ユーザー定義書式で桁数を固定する(00000)
数値のまま表示だけを整えたいときは、ユーザー定義書式がおすすめです。
セルを選んで Ctrl+1 →「表示形式」タブ →ユーザー定義を選び、種類に 00000 と入力します。
これで数値の 123 が 00123 と表示されるようになりました。
中身は数値のままなので、並べ替えや計算にもそのまま使えます。

方法④ TEXT関数で変換する
別のセルに0付きの文字列を作りたいときは、TEXT関数を使います。
E2セルに =TEXT(A2,”00000″) と入力します。
数値の 123 が、文字列の 00123 に変換されました。
元のデータを残したまま0付きのコードを作れるので、コードを別列で管理したいときに向いています。
実際の入力画面がこちらです。

変換結果を確認する
E列に、0付きのコードが文字列として並びました。
元のA列はそのまま残っているので、必要に応じて使い分けられます。

方法⑤ CSV・テキストの取り込み時に列の書式を指定する
CSVファイルを読み込むときも、0が消えることがあります。
「データ」タブ →「テキストまたはCSVから」で取り込むと、列の書式を文字列に指定できます。
取り込みプレビュー画面で該当の列を選び、書式を文字列にすれば、先頭の0が残ったまま取り込めます。
ダブルクリックでCSVを開くだけだと0が消えてしまうので、取り込み機能を使うのがポイントです。

5つの方法の比較
それぞれの方法の特徴を表にまとめました。
| 方法 | 向いている場面 | 注意点 |
|---|---|---|
| ①文字列として入力(’) | 1件だけ手入力するとき | 数値として計算できない |
| ②書式を文字列にして入力 | これから複数入力するとき | 入力済みのセルには効かない |
| ③ユーザー定義書式(00000) | 数値のまま桁を揃えたいとき | 中身は数値のまま |
| ④TEXT関数 | 別列に0付きコードを作るとき | 結果は文字列になる |
| ⑤CSV取り込み時に指定 | CSVを0付きで読み込むとき | 毎回取り込み設定が必要 |
「表示だけ0を付けたい」ならユーザー定義書式、
「文字列として0を保ちたい」なら文字列入力かTEXT関数がおすすめです。
用途で使い分けると迷いません。
VBAで既存の数値コードを一括で0付き文字列にする
すでに入力済みのコードがたくさんあるときは、VBAで一括変換するとラクです。
Sub ZeroPad()
Dim r As Long
For r = 2 To 9
If IsNumeric(Cells(r, 1).Value) Then
Cells(r, 5).Value = Format(Cells(r, 1).Value, "00000")
End If
Next r
End Sub
うまくいかないときの対処法(トラブルシュート)
実際に試すと、思ったようにいかないこともあるかもしれません。
よくあるつまずきと対処法をまとめました。
| 症状 | 原因 | 対処 |
|---|---|---|
| 既に入力した0が消えて戻せない | 数値として保存されている | ユーザー定義書式 00000 を当てる/=TEXT(A2,”00000″) で作り直す |
| 全角と半角が混在している | 「0123」と全角で入力されている | =ASC() で半角に変換してから書式を整える |
| 文字列にしたら計算できない | 文字列は数値として扱われない | =VALUE(文字列) で数値に戻す |
| CSVを開くたびに0が消える | ダブルクリックで開いている | 「データ」→「テキストまたはCSVから」で列書式を文字列に指定する |
まずは「数値として使うか、コードとして使うか」で選ぶと迷いにくいですよ。
関数の説明
今回使う2つの関数の概要です。
どちらも文字列と数値の変換でよく使う関数なので、違いを押さえておきましょう。
TEXT関数(テキスト)
| 書式 | =TEXT(値, 表示形式) |
|---|---|
| できること | 数値を、指定した表示形式の文字列に変換します。 |
| 戻り値 | 文字列 |
| こんなときに | 数値のコードに先頭の0を付けて、文字列として別セルに作りたいとき。 |
| 注意 | 結果は文字列なので、そのままでは計算に使えません。 |
=TEXT(A2, "00000")
VALUE関数(バリュー)
| 書式 | =VALUE(文字列) |
|---|---|
| できること | 文字列を数値に変換します。 |
| 戻り値 | 数値 |
| こんなときに | 文字列になったコードを、計算に使いたいとき。 |
| 注意 | 変換できない文字が含まれると #VALUE! エラーになります。 |
=VALUE("123")
完成
5つの方法で、先頭の0を残したままコードを管理できるようになりました。
数値として入力しても、書式やTEXT関数を使えば表示は 00123 のままです。
思ったとおりに動きましたか?
用途に合わせて方法を選べば、コード管理がぐっとラクになります。

さいごに
いかがでしょうか。
今回は、
についてまとめました。
まずは今回のサンプル表で、ぜひ一度試してみてください。
「表示だけ0を付けたいのか」「文字列として0を保ちたいのか」で選べば迷いません。
また、他にも便利なExcelの時短テクニックがありますので、よろしければご参照頂ければと思います。
ぜひ試してみてください。














コメントを残す