CSVにある「001」「000123」の先頭ゼロをExcelで残すには、ファイルをダブルクリックして直接開くのではなく、「データ」「テキストまたはCSVから」で取り込み、対象列のデータ型を文字列に指定します。CSVはセルの表示形式を持たず、Excelが内容を自動推定するため、識別コードが数値へ変換されます。本記事ではPower Queryを使う現行手順、Excel 2024/Microsoft 365の自動変換設定、すでにゼロが消えた場合の限界を解説します。
先頭ゼロが消える理由を理解する
CSVはカンマなどで値を区切ったテキストであり、「この列は文字列」というExcelのセル書式を保存しません。Excelが直接開くと、001を数値1と推定し、表示上の先頭ゼロを取り除きます。電話番号、郵便番号、商品コード、社員番号、口座コードのように計算しない値は、数字だけでも文字列として扱う必要があります。
Excelは15桁を超える数値を完全な精度で保持できないため、長い識別番号を数値へ変換すると16桁目以降がゼロへ置き換わる可能性があります。先頭ゼロだけでなく全桁を守るため、取り込み前に文字列型を指定します。一度失われた桁は表示形式を変えるだけでは元データから復元できません。
原本CSVをテキストとして確認する
作業前にCSVを複製し、信頼できるテキストエディターで対象値が001のまま存在するかを確認します。Excelで開いて上書き保存した後なら、原本側ですでに1へ変わっている可能性があります。区切り文字、引用符、文字コード、改行、列数も確認し、機密データをオンライン変換サービスへ送らないでください。
先頭ゼロの桁数が固定か可変か、コード内にハイフンや空白、E、日付のような文字列があるかを確認します。列の用途と期待値をデータ提供者へ確認し、「数字だけだから数値」という判断を避けます。受領仕様へ列名、データ型、最大長、文字コード、区切り文字を記載すると再発を減らせます。
データの「テキストまたはCSVから」で取り込む
新しいExcelブックを開き、「データ」タブの「テキストまたはCSVから」を選び、CSVを指定します。プレビューで区切り記号と文字コードを確認し、「データの変換」を選んでPower Queryエディターを開きます。自動で「変更された型」ステップが入っている場合、先頭ゼロがすでに数値変換されていないかを確認します。
対象列を選択し、データ型を「テキスト」へ変更します。変換確認では現在の変換を置き換える選択を使い、プレビューで001、002のまま表示されることを確認します。複数列はCtrlを使って選べます。完了後に「閉じて読み込む」でワークシートへ読み込みます。原本CSVは変更せず、クエリとして参照します。
Power Queryの自動型判定を見直す
Power Queryはサンプル行から列型を自動推定し、「変更された型」ステップを追加することがあります。文字列へ変更する前に数値へ変換されると、後からテキストへ戻しても失われたゼロは復元されません。適用したステップ一覧で型変換の順序を確認し、最初から対象列をTextとして扱います。
定期取込では、同じクエリを更新すると変換手順が再利用されます。ただしCSVの列名、順序、区切り、文字コードが変わるとエラーや誤変換が起きます。更新後に件数、列数、先頭ゼロ、最大桁数、エラー行を検証します。クエリの資格情報と原本保存先も組織の管理対象にします。
自動データ変換設定を利用できる版
Microsoft 365およびExcel 2024の一部環境では、Excelオプションのデータ関連設定で「先頭のゼロを削除して数値に変換する」「15桁を超える数値を変換する」などの自動データ変換を制御できます。機能の有無と表示名は版・OSで異なるため、利用中Excelの公式案内を確認します。
自動変換を無効にすると他のCSVや貼り付けにも影響します。組織全体の標準へする前に、日付、科学表記、数値計算のワークフローをテストします。設定だけに依存せず、重要なインポートはPower Queryで列型を明示し、ファイルごとの再現可能な処理として残します。
セルの表示形式と文字列保存を区別する
すでに数値1として取り込んだ値を「000」のユーザー定義表示形式にすると、画面上は001と見せられます。これは固定桁の表示には便利ですが、セルの実値は数値1のままです。CSVへ再保存、別システム連携、桁数可変、15桁超では期待どおりにならない場合があります。
識別コードとして保持するなら文字列が基本です。手入力では先にセルを文字列形式にするか、先頭にアポストロフィを入力できますが、アポストロフィは表示されず入力補助として扱われます。大量CSV取込で各セルへアポストロフィを付ける方法は非効率で、原本の値を変えるためPower Queryを優先します。
文字コード・区切り・日付変換も同時に確認する
先頭ゼロだけ直しても、UTF-8とShift_JISの違いで日本語が文字化け、カンマを含む値で列ずれ、JAN1が日付、123E5が科学表記へ変換されることがあります。プレビューで区切り文字、引用符、文字コード、各列の型を確認します。小数点・日付は地域設定の影響も受けます。
データ提供元がExcel利用を想定するなら、CSV仕様書やデータ辞書を用意し、文字列列を明示します。可能ならXLSX、データベース接続、JSONなど型情報を持てる形式を検討します。ただし相手システムがCSV必須なら、取込クエリと検証を標準化する方が安全です。Windowsの地域設定を変更して回避すると他アプリへ影響します。
すでにゼロや桁が失われた場合の復元
原本CSVに001が残っていれば、Excelで開いたブックを修正するより、原本から文字列型を指定して取り込み直す方が確実です。原本に固定桁の仕様があり、数値1から001を再構成できる場合でも、列ごとの桁数と例外をデータ所有者へ確認します。見た目だけを一律に三桁へそろえると、もともと1だった値まで001へ変える危険があります。
16桁以上の番号が数値化され、15桁より後ろがゼロへ置換された場合、Excel内の値だけから元の桁を推測できません。バックアップ、送信元システム、監査ログから再取得します。誤った番号を「復元したつもり」で業務システムへ戻さず、影響件数、利用先、修正根拠を記録して担当者の承認を得ます。
取り込み後と再保存時に検証する
読み込み後に、001、000123、15桁超、空白、ハイフン、Eを含むコードのサンプルを確認します。セルの表示だけでなく数式バー、LEN関数、ISTEXT、最大・最小長、重複件数を使って検証します。原本CSVの行数とExcelの読込行数、エラー行、空白行も比較します。
作業結果を保持するならXLSXとして保存します。CSVへ再保存すると、原則として現在のシート一枚と値だけが出力され、クエリ、複数シート、書式は保持されません。再出力CSVをテキストエディターで開き、先頭ゼロ、区切り、引用符、文字コードが要件どおりかを確認してから他システムへ渡します。
実務での確認チェックリスト
- 原本CSVで001が残っているかをテキストエディターで確認する
- ダブルクリックで直接開かず「テキストまたはCSVから」を使う
- Power Queryで対象列を最初からTextへ指定する
- 15桁超の識別番号も文字列として扱う
- ユーザー定義表示形式と実データの文字列保存を区別する
- 再保存CSVをテキストで開きゼロ・区切り・文字コードを検証する

コメント