Excelが先頭の0を消すのは、00742を数値の742として読むからです。0を表示するには、セルにユーザー定義の表示形式00000を設定します。0の付いた文字列に変えるには=TEXT(A2,"00000")を使います。
| A | B | C | |
|---|---|---|---|
| 1 | Number | TEXT(A2,"00000") | Format 00000 |
| 2 | 742 | 00742 | 00742 |
| 3 | 15 | 00015 | 00015 |
| 4 | 31415 | 31415 | 31415 |
2つの列は同じに見えますが、中身は違います。B列は文字列で、C列はまだ数値の742、15、31415のままで、5桁で表示しているだけです。コードの0はそれぞれ常に表示される桁なので、00000は「最低5桁」という意味です。
入力するときに先頭の0を残す
0で始まるコードを入力して残す方法は3つあります:
- ユーザー定義の表示形式。 セルを選択してCtrl+1(MacではCmd+1)を押し、「ユーザー定義」を選んで「種類」に
00000と入力します。セルは数値のままなので、SUMや並べ替えも使えます。郵便番号や社員番号のような桁数の決まった数値に使います。 - アポストロフィ。
'00742と入力します。アポストロフィは表示されず、Excelに入力を文字列として保存するよう伝えます。 - 文字列の表示形式。 セルを選択して ホーム > 数値の書式 > 文字列 を選んでから入力します。その後に入力したものはすべて、入力したとおりの文字列として保存されます。
| A | B | C | |
|---|---|---|---|
| 1 | Typed | Length | Is it text? |
| 2 | 00742 | 5 | TRUE |
| 3 | 742 | 3 | FALSE |
A2は'00742と入力したので、5文字すべてが残っています。A3はアポストロフィなしで00742と入力したので数値の742になり、桁は3つです。量ではなくコードである値には文字列(アポストロフィか文字列の表示形式)を使います。電話番号、口座番号、部品コード、15桁より長いものなどです(Excelは数値の有効桁数を15桁までしか保持しないので、16桁のカード番号を数値として入力すると最後の桁が0になります)。
数式で先頭に0を付ける
TEXTは数値を決まった桁数まで0埋めします。すでに文字列の値や英字を含むかもしれない値には、前に0を付けてRIGHTで最後の文字を残します:
| A | B | C | |
|---|---|---|---|
| 1 | Value | TEXT(A2,"000000") | RIGHT("000000"&A2,6) |
| 2 | 42 | 000042 | 000042 |
| 3 | 1234 | 001234 | 001234 |
| 4 | A17 | A17 | 000A17 |
TEXTには数値が必要なので、B4では文字列のA17がそのまま残ります。RIGHTの方法は、何にでも前に0を6つ付けて最後の6文字を残すので、どちらにも使えます。ただしRIGHTは、もともと6文字より長い値を切ってしまいます。=REPT("0",MAX(0,6-LEN(A2)))&A2は足りない分の0だけを付け、長い値はそのまま残します。
| A | B | |
|---|---|---|
| 1 | Number | Employee ID |
| 2 | 4217 |
やってみよう: 社員番号は6桁です。B2で、A2の番号を004217のように先頭に0を付けた文字列で返してください。
長いコードの中の0
0埋めした数値をコードや文の中に入れるときもTEXTを使います。数値をそのままつなぐと、ユーザー定義の表示形式でセルに0が表示されていても0は消えます:
| A | B | C | |
|---|---|---|---|
| 1 | Order | With TEXT | Without TEXT |
| 2 | 0007 | ORD-0007 | ORD-7 |
| 3 | 0315 | ORD-0315 | ORD-315 |
| A | B | |
|---|---|---|
| 1 | Number | Invoice |
| 2 | 87 |
やってみよう: B2で、INV-の後にA2の番号を5桁に0埋めして付けた、INV-00087のような請求書コードを作ってください。
先頭の0を削除する、そしてCSVの落とし穴
先頭に0の付いた文字列を数値に戻すには=VALUE(A2)を使います(詳しくは文字列を数値に変換する)。00000の表示形式で表示している数値なら、表示形式を「標準」に戻します。
0が消える最もよくある原因は、CSVファイルを開くことです。Excelはファイルを開くときに00742を742に変え、そのまま保存すると742が書き込まれます。0を残すには:
- 空白のブックを開き、データ > テキストまたはCSVから でファイルを選びます。
- データの変換をクリックし、列を選択してデータ型を文字列にします。
- 閉じて読み込むをクリックします。
Microsoft 365では、ファイル > オプション > データ > 自動データ変換 に「先頭のゼロを削除して数値に変換する」という設定があります。これをオフにすると、入力するときもCSVファイルを開くときもExcelは0を残します。Googleスプレッドシートでは、コードを入力したり貼り付けたりする前に、列の表示形式を「書式なしテキスト」にします。
よくある質問
Excelで先頭の0が消えるのはなぜですか?
Excelは00742を数値の742として読み、数値には先頭の0がないからです。入力する前にセルの表示形式を文字列にするか、先頭にアポストロフィを付けて入力する('00742)か、数値のままユーザー定義の表示形式00000を設定します。
Excelの数式で先頭に0を付けるには?
=TEXT(A2,"00000")は数値を5桁に0埋めするので、742は00742になります。英字を含むかもしれない文字列には=RIGHT("00000"&A2,5)を使います。
CSVファイルを開くときに先頭の0を残すには?
CSVをダブルクリックで開かないでください。データ > テキストまたはCSVから を使い、「データの変換」をクリックして列のデータ型を文字列にしてから読み込みます。Microsoft 365では、ファイル > オプション > データ > 自動データ変換 で先頭の0を削除する設定をオフにすることもできます。
Excelで先頭の0を削除するには?
セルに'00742のような文字列が入っているなら、=VALUE(A2)が数値の742を返します。00000の表示形式を設定した数値なら、表示形式を「標準」に戻します。