おはよう、後輩A君。
Excelに電話番号を入力したら、こうなった経験はないかい。
入力したのは 0120345678
表示されたのは 120345678
先頭の0が、消えているんだよね。郵便番号の「0120001」も、社員番号の「007」も同じだよ。何度打ち直しても消える。
これ、Excelの故障じゃないんだ。Excelが良かれと思ってやっていることなんだよね。今日はこの「先頭の0が消える」問題を、4つの方法で解決するよ。あなたの状況に合うものを選べるように、使い分けの早見も最後に置いておくね。
1. なぜExcelで先頭の0が消えるのか
まず原因からいくよ。ここが分かると、対処法の意味も分かるからね。
Excelはセルに入力された内容を見て、「これは数値か、それとも文字か」を自動で判断しているんだよ。
「0120345678」は、数字だけでできているよね。だからExcelは「これは数値だな」と判断する。そして数値として扱うと、こうなるんだ。
数値の世界では 0120345678 = 120345678
数学的にはこれで正しいんだよね。「007」も、数値としては「7」なんだ。先頭の0には意味がない――それが数値のルールだからね。
でも私たちが扱っているのは、計算する数値じゃなくて「番号」という名前の文字列なんだよ。電話番号を足し算することはないよね。
だから解決の方向はひとつだけなんだ。
Excelに「これは数値じゃなくて文字だよ」と教えてあげる。
これから紹介する4つの方法は、全部この「教え方」のバリエーションなんだよ。
2. 今すぐ直す:先頭にアポストロフィを付ける方法
いちばん手っ取り早い方法だよ。入力する数字の前に、アポストロフィ(’)を1つ付けるだけなんだ。
‘0120345678 ← こう入力する
0120345678 ← こう表示される
アポストロフィはShiftキーを押しながら「7」のキーで入力できるよ(日本語キーボードの場合だね)。
このアポストロフィは画面には表示されないんだ。「ここから先は文字として扱ってね」というExcelへの合図として消えてくれる。セルを選ぶと数式バーには残って見えるけれど、印刷にもコピー先にも出てこないよ。
この方法が向いているのは、直したいセルが数個のときだね。10個や20個なら、これがいちばん早い。逆に何百件もあるなら、次の方法にしようか。
3. これから入力する:セルの書式を「文字列」にする方法
これから大量に入力するなら、先に入れ物の性質を変えておくのが確実だよ。手順はこうだね。
① 入力する範囲を選ぶ(列ごと選ぶのが楽だよ)
② 右クリック →「セルの書式設定」
③ 「表示形式」タブで「文字列」を選ぶ
④ 「OK」を押してから入力する
これで、そのセルに入れたものはすべて文字として扱われるようになるんだ。0120345678と打てば、そのまま0120345678と表示されるよ。
ここで大事な注意が1つあるんだ。
入力したあとに書式を変えても、消えた0は戻らない。
順番が逆だと効かないんだよね。もう入力してしまったセルは、書式を文字列に変えてから入力し直す必要があるんだ。ここでつまずく人がとても多いから、覚えておいてほしいな。入れ物を先に用意してから、中身を入れる――この順番だよ。
4. 見た目だけ0を付ける:ユーザー定義の表示形式を使う方法
3つ目は少し毛色が違うよ。データは数値のまま、表示だけ0を付ける方法なんだ。
社員番号を「7」と入力して「007」と表示させたい、というような場合だね。手順はこうだよ。
① 範囲を選んで「セルの書式設定」
② 「表示形式」タブで「ユーザー定義」を選ぶ
③ 「種類」の欄に 000 と入力する(3桁で揃えたいとき)
これで「7」→「007」、「42」→「042」と表示されるようになるよ。桁を増やしたければ0の数を増やせばいいんだ。電話番号なら 000-0000-0000 と入力すると、ハイフンまで自動で入るよ。郵便番号は 000-0000 だね。
この方法の良いところは、中身は数値のままだから計算に使えることなんだ。合計や並べ替えが必要なデータには、こちらが向いているよ。
ただし落とし穴もあるんだよ。
0が付いているのは「見た目」だけ。
別のソフトにコピーしたり、CSVに保存すると0は消える。
だから「人に配るファイル」や「他のシステムに渡すデータ」には向かないんだ。自分のファイルの中で見やすくするための方法、と考えておくといいね。
5. CSVを開くと0が消える問題の対処法
ここがいちばんの落とし穴だよ。後輩A君に一番伝えたいのは、実はこの章なんだ。
0が正しく入っているCSVファイルを、Excelでダブルクリックして開く。――これをやった瞬間に、0は消えてしまうんだよね。
CSVはただのテキストファイルだから、中身には「0120345678」とちゃんと書いてある。でもExcelが開くときに、例のごとく「これは数値だな」と判断してしまうんだ。
そして本当に怖いのはここからだよ。
0が消えた状態で上書き保存すると、元のデータからも0が失われる。
ファイルの中身そのものが書き換わってしまうんだ。ダブルクリックで開いて、保存しただけで、データが壊れる――これがCSVの怖さなんだよね。
だから0を含むCSVは、絶対にダブルクリックで開かないでほしいんだ。正しい開き方はこうだよ。
① Excelを先に起動する(空のブックでいい)
② 「データ」タブ →「テキストまたはCSVから」を選ぶ
③ ファイルを選ぶとプレビュー画面が出る
④ 「データの変換」を押す
⑤ 0が消えている列を選んで、データ型を「テキスト」に変更する
⑥ 「閉じて読み込む」を押す
少し手数は多いけれど、これが唯一の安全なやり方なんだよ。お客さんから預かったデータを壊してしまうと取り返しがつかないからね。私はこの手順を、CSVを扱う仕事の前に必ず思い出すようにしているんだ。
ダブルクリックは、CSVには使わない。これだけ覚えておいてほしいな。
6. 4つの方法、どれを選べばいいのか
ここまでの方法を、状況別に整理しておくね。迷ったらここに戻ってきてほしいんだ。
直したいセルが数個だけ
→ ②アポストロフィを付けるこれから大量に入力する
→ ③セルの書式を「文字列」にしてから入力計算にも使いたい/見た目だけ揃えたい
→ ④ユーザー定義の表示形式(000など)CSVを開きたい
→ ⑤「データ」タブから読み込んで、列を「テキスト」に人に配る・他システムに渡す
→ ③文字列にする(④は0が消えるので不可)
判断の分かれ目は「そのデータで計算するか」と「そのファイルを人に渡すか」の2つだよ。この2つを先に決めてしまえば、どの方法を選ぶかは自動的に決まるんだ。
7. 消えてしまった0は、戻せるのか
最後に、いちばん切実な質問に答えておくね。すでに消えてしまった0は戻せるのか――という話だよ。
残念だけど、基本的には戻せないんだ。Excelは「0120345678」を「120345678」という数値として保存してしまっているから、先頭に0が何個あったかという情報が、もう残っていないんだよね。
ただし、桁数が決まっているデータなら復活できるよ。電話番号や郵便番号がまさにそうだね。
元データが11桁と分かっている場合
= =TEXT(A1,”00000000000″) (0を11個)
この式で、足りない桁を0で埋めた文字列が作れるんだ。郵便番号(7桁)なら0を7個だね。
でもこれは「たぶんこうだったはず」という復元でしかないんだよ。桁数がバラバラのデータには使えないし、間違って埋めてしまう危険もある。元データがまだ手元にあるなら、そちらから取り直すのが確実だね。
だからこそ、消える前に手を打つのがいちばんなんだよ。
結論:Excelに「これは文字だよ」と先に教えておこうか
今日の話をまとめるとこうだよ。
① 0が消えるのはExcelが「数値」だと判断するから
② 数個ならアポストロフィ(’)を先頭に付ける
③ 大量入力なら先に書式を「文字列」にしてから入力する
④ 計算にも使うならユーザー定義の表示形式(000)。ただし見た目だけ
⑤ CSVはダブルクリック厳禁。「データ」タブから列を「テキスト」で読み込む
⑥ 消えた0は基本戻らない。桁数が決まっていればTEXT関数で復元できる
この問題の本質はね、Excelが親切すぎることなんだよ。「数字だけ入ってるから数値でしょ?」と気を利かせてくれる。その親切が、私たちの意図とずれているだけなんだ。
これ、AIとの付き合いにも似ていると思わないかい。賢い道具ほど、こちらの意図を勝手に補完してくる。だから「これはこう扱ってほしい」と先に伝えておく――道具が賢くなるほど、この一手間が効いてくるんだよね。
ちなみに、Excelが勝手に変換してしまう問題には長い数字が指数表示(1.2E+11)になる問題もあるよ。原因も対処法も今日の話とほぼ同じだから、あわせて読んでおくと守備範囲が広がるはずだよ。
後輩A君も、電話番号や郵便番号を扱うときは、入力する前に列を「文字列」にする――この一手間を習慣にしてみようか。あとから直すより、ずっと早いんだよ。
よくある質問
Q1. 電話番号の先頭0が消えるのを防ぐ、いちばん簡単な方法は?
入力する前に、その列の書式を「文字列」にしておくことだね。列番号を右クリック →「セルの書式設定」→「文字列」を選ぶだけだよ。1回設定すれば、その列に入力するものはすべて文字として扱われる。電話番号や郵便番号の列を作るときは、データを入れる前に必ずこれをやると決めておくと事故がなくなるよ。
Q2. 郵便番号を「0120001」のように7桁で表示したい
計算に使わないなら書式を「文字列」にして、そのまま入力するのが確実だね。すでに数値として入っているデータを直したいなら、ユーザー定義の表示形式で「000-0000」と設定すると、ハイフン入りで表示できるよ。ただしこれは見た目だけなので、そのファイルを人に渡すなら文字列にしておく方が安全だね。
Q3. CSVを開いたら0が消えていた。元に戻せますか?
まだ上書き保存していなければ、戻せるよ。そのまま保存せずに閉じて、CSVファイル自体は無傷のはずだから、「データ」タブ →「テキストまたはCSVから」で読み込み直せばいいんだ。その際に列のデータ型を「テキスト」にすれば0は残るよ。すでに上書き保存してしまった場合は、元ファイルの中身が書き換わっているので、バックアップか送り主からの再取得が必要になるね。
Q4. 「文字列」にすると、計算に使えなくなりますか?
そのままでは計算できないよ。ただ、電話番号や郵便番号を計算することはまずないよね。計算する数値と、番号としての文字列は、そもそも別物だと考えるといいんだ。もし「表示は0埋め、計算もしたい」という場合は、ユーザー定義の表示形式を使えば両立できるよ。どうしても文字列を計算に使いたいときは、VALUE関数で数値に変換できるからね。
【本日のミッション:入力する前に、列を文字列にしておこうか】
- ☐ 電話番号や郵便番号を入れる列を、入力前に「文字列」に設定してみようか
- ☐ 手元にCSVがあったら、ダブルクリックせず「データ」タブから開いてみようか
- ☐ (後輩A君へ)賢い道具ほど、こちらの意図を勝手に補ってくるんだよ。先に伝えておく一手間が、あとの手戻りをぜんぶ消してくれるんだ
📚 AI活用シリーズ(おすすめ)

コメント