CSVの顧客コード「00123」が、Excelで開くと「123」になる。郵便番号や商品番号の先頭の0が消えるのは、読み込み時に数字の並びを数値として解釈したためです。足し算をする金額と、桁や文字をそのまま保持したい番号は、取り込み時の型を分けます。
元のCSVに00123が残っているなら、顧客コード列を文字列として読み込み直す方法が確実です。すでに123へ変換してCSVを上書きした場合は、そのファイルだけから元の桁数を判断できません。まず元ファイルを別名で保管し、変換後の表で上書きしない状態で作業してください。
ADVERTISEMENT
1. CSVの中身とExcelの表示を分けて確認する
CSVは区切り文字で値を並べたテキストで、Excelのセルの表示形式や列のデータ型を保存する形式ではありません。ただし、ファイルの文字として00123を記録することはできます。「CSVだから0を保存できない」のではなく、読み取る側の解釈が問題です。
CSVをメモ帳などのテキストエディターで開き、対象の値を確認します。ここで00123なら取り込みをやり直せます。123になっている場合は、出力元から再取得するか、保管してある原本を探します。引用符で囲まれた”00123″も、CSVではフィールドを囲む記号であり、それだけでExcelの文字列型を保証するものではありません。
次の例ではcustomer_idとpostal_codeを文字列、amountを数値にします。番号の桁を守りながら、金額の合計2000を計算できる状態が目標です。
customer_id,postal_code,amount
00123,0123456,1200
00007,1000001,800
2. [テキストまたはCSVから]で読み込む
Windows版Excelでは、空のブックを用意し、[データ]→[テキストまたはCSVから]を選んで元のCSVを指定します。プレビューで文字コード、区切り記号、列の分かれ方を確かめます。日本語が文字化けしていれば、読み込みを確定する前にファイルの元の形式を見直します。
データ型の検出方法を選べる画面では、[データ型を検出しない]を選び、[データの変換]へ進みます。Power Queryエディターでcustomer_idとpostal_codeを選び、列見出しの型アイコンまたは[データ型]から[テキスト]を指定します。amountだけは整数など、計算に使う数値型にします。
プレビューの最初の数行だけで安心せず、先頭0のある行と長いコードの行を見ます。データ型の推測は、選択した設定によって先頭の行だけを調べる場合があります。途中から英字を含むコードが出てくるデータでは、最初の行が数字だけでも列全体を数値と判断しないようにします。
3. すでに数値に変わった列は変換の順序を直す
エディター上で123になっている列に、後から[テキスト]を指定しても、通常は文字列の”123″になるだけです。元の00123を得るには、数値に変えた手順より前のデータから読み直す必要があります。右側の[適用したステップ]で[変更された型]などの手順を確認します。

直前のステップを選び、そこでは00123が残っているか見ます。残っていれば、自動作成された型変換を削除するか、その型指定を置き換え、番号列を最初からテキストにします。[現在のものを置換]か[新しいステップの追加]かを尋ねられる場合は、数値化を後から文字列化する手順を積み重ねないよう、既存の型変換を修正します。
すでに後続の加工があるクエリでは、ステップ削除が別の列の処理に影響することがあります。作業前にブックを別名保存し、変更後は番号だけでなく列数、行数、金額も確認します。最初の取り込み段階でも0がないなら、元CSVの内容と選択したファイルが正しいかへ戻って調べます。
4. 旧テキストインポートウィザードを使う場合
従来のウィザードを使う環境では、[ファイル]→[オプション]→[データ]でレガシのデータインポートウィザードの[テキストから]を有効にできます。必要に応じてブックを開き直し、[データ]→[データの取得]→[従来のウィザード]からテキストの取り込みを選びます。表示名は版によって異なります。
1段階目で区切り文字で分かれたデータを選び、文字コードと読み込み開始行を確認します。2段階目でカンマなどの区切り文字、文字列の引用符を指定し、プレビューで列が正しく分かれることを見ます。3段階目で番号列をクリックし、列のデータ形式を[文字列]にします。別の番号列にも同じ指定を繰り返します。
金額列まで文字列にする必要はありません。各列の見出しに表示される型を確認してから完了し、データの配置先を選びます。既存データに重ならない空のシートを使うと、上書きを避けられます。使い終わって表示を戻す場合は、オプションのレガシウィザードのチェックを外します。
5. 自動データ変換の設定は適用範囲に注意する
対応するMicrosoft 365やExcel 2024では、[ファイル]→[オプション]→[データ]に自動データ変換の設定があります。先頭の0を削除して数値に変換する処理や、長い数値を15桁の精度で数値化する処理を無効にできるため、CSVを直接開く運用でも変換を抑えられます。
この設定がない版では、前述の取り込み時の列指定を使います。また、このオプションを変えればPower Query内の型変換も不要になる、というわけではありません。Power Queryではクエリに記録された型指定を確認します。既存のブックですでに失われた0や末尾桁を復元する設定でもありません。
アプリ全体の設定なので、変更前の状態を記録し、他のCSVや通常の入力への影響も確かめます。0を保つ代わりに数値が文字列として入る列が増えることがあります。特定の取り込みだけに条件を持たせたい場合は、列の型を明示したクエリとして保存する方法が管理しやすくなります。
6. 0の補充で戻せる場合と戻せない場合
「顧客コードは必ず5桁」と決まっていて、失われたのが先頭0だけなら、123から00123を作ることはできます。別列で次の式を使います。ただしこれは既知の桁数に合わせて補う処理で、元ファイルを復元しているわけではありません。
=TEXT(A2,"00000")
3桁、5桁、7桁の番号が混在していた場合、123が123だったのか00123だったのかは、この式では判断できません。また、16桁以上の番号を数値に変換して末尾が変わった場合は、先頭0を補っても元へ戻りません。Excelの数値精度は15桁なので、計算しない長い番号は最初から文字列で保持します。
表示形式の00000は数値123を00123と見せるだけで、文字列の5桁コードとは異なります。別システムへの受け渡しでは、画面の見た目だけでなく書き出されたファイルの値を確認します。復元できる前提がない番号に、一律で桁埋めをかけないでください。
7. 更新と保存の前に代表行を照合する
[閉じて読み込む]でシートへ出した後、例の00123、00007、0123456が残っていることを確かめます。顧客コードがA2なら、別セルで=ISTEXT(A2)がTRUE、=LEN(A2)が5になることも確認できます。金額列は合計2000となるかを見ます。
Power Queryの出力表を手入力で修正しても、次回の更新で上書きされる可能性があります。継続的な変換ルールはクエリ側に残し、修正が必要な原データは出力元へ戻って直します。更新後にも先頭0、長い番号、空欄、日本語を含む代表行を点検してください。
クエリやセル型を保つ作業用ファイルはExcelブックとして保存します。CSVとして保存し直す必要がある場合は別名にし、保存後にテキストとして開いて出力内容を確認します。再びExcelで直接開いたときの表示だけでは、保存時と読み込み時のどちらで変わったか分からなくなります。
8. 失敗したら原本からやり直せる状態を保つ
取り込みがおかしいときは、原CSVの文字、区切りと文字コード、型変換の順序、読み込み先の順に調べます。元のCSVを残していれば、加工済みの番号を推測で直すより、正しい型で読み込み直せます。
番号列を文字列、金額や数量を数値として区別し、その設定を次回にも使える形で保存する。これが先頭0の消失を防ぐ基本です。最初の数行が正しく見えるだけで完了とせず、桁の長い値や0で始まる値を確認してから、集計や照合作業へ進みましょう。
超解決 Excel・Word研究班
企業のDX支援や業務効率化を専門とする技術者チーム。20年以上のExcel・Word運用改善実績に基づき、不具合の根本原因と最短の解決策を監修しています。ExcelとWordを使った「やりたいこと」「困っていること」「より便利な使い方」をクライアントの視点で丁寧に提供します。
Office・仕事術の人気記事ランキング
- 【Excel】オートフィル(右下の+)が効かない!ドラッグできない時のオプション有効化設定
- 【Outlook】添付ファイルが「Winmail.dat」に化ける!受信側が困らない送信設定
- 【PDF】EdgeでPDFを開くと印刷できない・プリンタ一覧が出ない時のブラウザ再起動とシステムダイアログ
- 【Word】差し込み印刷の金額にカンマを付ける方法|小数・0・空欄の確認
- 【Outlook】祝日が表示されない・重複する時の対処|追加方法と対象年の確認
- 【Outlook】メールの受信が数分遅れる!リアルタイムで届かない時の同期設定と送受信グループ設定
- 保存せずに閉じたExcel・Wordを復元する方法|自動回復・未保存ファイル・履歴の確認
- 【Excel】COUNTAでセルの個数を数える方法|空文字・空白・COUNTとの違い
- 【Word】校閲機能の基本!赤字(変更履歴)とコメントで修正を見える化する
- 【PDF】入力した文字のフォント・サイズ・色を変更する方法|注釈とフォームの違い
