ExcelでCSVを開くと先頭ゼロ・長いID・日付が変わるときの安全な取り込み

CSVをExcelで開いたときに先頭ゼロ・長いID・日付が変わる原因と、安全な取り込み直しを解説。原本の保全、列ごとの型指定、取り込み後の照合手順を紹介します。

AIものさし編集部

CSVの郵便番号から先頭の0が消えたり、16桁以上のIDが丸められたり、商品コードのような文字列が日付へ変わったりした場合、表示形式だけを戻しても元の値は復元できないことがあります。まず原CSVを保全し、Excelが読み込み時に値を変換したのか、セルの表示だけが変わったのかを分けてください。安全な取り込みでは、識別子・コードなど計算に使わない列を「文字列」として読み込み、必要な数値・日付列だけ用途に合う型へ変換します。

この記事は、既に壊れたCSVを推測で修復する手順ではありません。元ファイルを保全して再取込できる状態を作り、どの列に何の型を適用したかを検証するためのガイドです。見えているゼロや桁だけを補っても、元の値と一致するとは限りません。

最初に原本とExcel上の値を分ける

CSVを直接開いて値が変わったように見えたら、保存や上書きより先にファイルを閉じます。確認ダイアログが表示された場合は、原本の内容を変更しない選択をします。次に元CSVが残っているか、バックアップや作成元から再取得できるかを確かめます。作業を続ける場合は原本を複製し、読み込みと検証はコピーに対して行います。

表は横にスクロールできます

症状起こり得る変換最初に見ること
00123が123になる先頭ゼロを含む文字列の数値変換原本の値、列の用途、Import時のData Type
16桁以上のIDの末尾が0になる数値として扱われ15桁精度を超えた可能性元CSVとExcelのセル値を比較
1-2が日付として表示されるExcelの自動日付変換元データが識別コードか実際の日付か
1.2E+15と表示される長い数値の科学表記または精度変換元CSVの表現と比較
一部の行だけ変わる列の型推定や値形式の混在先頭以外の複数行も検査

Excelでは、セルの表示形式を変えることと保存値を復元することは別です。Microsoftの案内では、数値コードを後からText表示にしても、取り込み時に消えた先頭ゼロは戻りません。またExcelの数値精度は有効数字15桁までで、16桁以上を数値として扱うと後ろの桁が保持されない場合があります。ID、口座番号、郵便番号、商品コードなどは計算する数量ではなく識別子として扱うのが基本です。

列を「数値」か「文字列」か決める

インポート前に、列の意味を決めます。見た目が数字だけでも、計算・加算する量なのか、他のデータと照合する識別子なのかで型が異なります。郵便番号の先頭ゼロ、電話番号、社員番号、伝票番号、製品コードなどは、多くの場合、算術計算ではなく完全一致・検索に使う値です。こうした列はTextとして保持します。数量や金額など計算が必要な列だけ、数値へ変換します。

表は横にスクロールできます

列の例通常の扱い理由と確認
郵便番号、電話番号Text桁・先頭ゼロ・記号を識別情報として保つ
商品コード、社員番号、注文IDText数値計算ではなく検索・結合に使う
16桁以上の番号Text数値化で15桁を超える精度を失う可能性
数量、単価、合計額用途に応じNumber/Currency計算する。通貨・小数点規則も確認
年月日・時刻意図したDate/DateTimeかText元の順序、地域設定、タイムゾーンを確認
1-2、03/04のような値まずTextで保持し確認識別コードが日付へ誤変換される恐れ

列型を判断できない場合は、初回取込ではTextとして保全し、データ仕様を確認したあと別列や別クエリで変換する方法があります。一方、全列を恒久的にTextにするのが常に正解ではありません。数値計算をする列は、元データの区切り・小数点・単位を確認してから型を設定してください。

CSVを直接開かず、Text/CSVから取り込む

CSVをダブルクリックして開くと、Excelは既定の形式設定に従って各列を解釈します。型を制御したいときはExcelを先に開き、[データ]から[テキストまたはCSVから]を選んで作業用コピーを指定します。画面上の名称はExcelの版やOSで異なります。Power Queryのプレビューが表示されたら、問題になりそうな列を選び、Data TypeをTextへ設定してから読み込みます。

  1. 原CSVを保管し、作業用コピーを作る。

  2. ExcelのDataタブからText/CSV importを開始し、作業用コピーを指定する。

  3. Previewでヘッダー、Delimiter、引用符、先頭・中央・末尾の行を確認する。

  4. 郵便番号・長いID・商品コードなどの列を選び、Power QueryでData TypeをTextへ設定する。

  5. 日付列は、元CSVの形式と地域設定を確認してからDate typeを選ぶ。曖昧な列はTextのまま保つ。

  6. 数量・金額など計算対象列だけ、区切り文字・小数点・単位が合う型へ変換する。

  7. 変換手順をPreview上で確認し、別シートまたは新しいブックへLoadする。

  8. 元CSVと行数・列数・代表値・合計値を照合してから、作業用Excelブックを別名で保存する。

Power QueryのText/CSVでは列を個別に型指定できます。Microsoft Learnは、CSVやテキストのような非構造化ソースでは値を調べて型を自動検出すること、Text/CSVコネクタで自動型検出を無効にして全列をTextとして読み込む選択肢があることを説明しています。設定名称や利用可否はPower Queryの版・利用環境により異なるため、現在の画面で確認してください。

識別子列が少数なら、Power Query Editorで対象列を選びData TypeをTextにします。自動生成されたChanged Type stepが後から文字列を数値・日付へ変えていないか、Applied Stepsも確認します。型を後から変える場合、誤ったChanged Type stepの後ろで変換しても失われた桁は復元できないため、元CSVから再読み込みしてください。

日付に変わる値を止める

1-2や03/04のような値は、識別コードか日付かを文字列だけで決めにくいことがあります。元データの列定義や発行元の説明を確認し、どちらか確定する前はTextとして読み込みます。日付だと確認できた場合でも、月日年の順序がExcelの地域設定と合うか、実際の値をプレビューで確認します。Excelのテキストインポートウィザードでは、列ごとにTextやDateを選び、Dateなら日付順を指定できます。現在のExcelではPower Queryが代替となることがあり、Text Import Wizardはlegacy featureとして扱われます。

数字が日付へ変わった後、表示形式だけをTextへ変えても元の記号列が戻るとは限りません。元CSVから取込設定を修正して再読み込みします。自動変換を止める設定がExcelの版によって提供されている場合は、対象列・Excel バージョン・組織の標準設定を確認します。個人設定の変更が全ファイルに影響する場合、特定CSVの問題を直すためだけに全体設定を変えないほうが安全です。

読み込み後の検証

Previewで正しく見えても、Load後に列型や桁が変わっていないかを確認します。元CSVを保持したまま、次の表で結果を照合してください。

表は横にスクロールできます

検証具体例合格条件
先頭ゼロ郵便番号00123、商品コード0007元CSVと同じ文字列で残る
長いID16桁以上の識別子末尾まで全桁が元CSVと一致
日付様の文字列1-2、03/04、202605列の意味に応じた文字列または正しい日付
データ件数ヘッダーを除く行数元CSVの件数と一致
列数・見出し全列の名前と順序欠落・ずれ・誤分割がない
代表行先頭・中央・末尾、特殊文字を含む値文字、空欄、引用符、区切りが保持
数値の合計数量・金額など元CSVや基準帳票の既知合計と一致

全行を確認できない場合は、照合した範囲を記録し、「すべての値が保証された」とは書かないでください。業務上重要な識別子列は件数だけでなく、キー重複、空欄、先頭・末尾のサンプル、別システムとの一致も確認します。値が既に数値変換され、原CSVや元データがない場合、ゼロや末尾桁を推測して埋めず、データ所有者や発行元から再取得します。

取り込んだデータをCSVへ再保存すると、書式や複数シートなどExcelブックの情報は保持されません。原本CSVを上書きせず、作業結果は用途に応じて別名のExcelブックとして保存してください。以後の更新で同じクエリをRefreshする場合も、source ファイルの仕様が変わっていないか、行数・代表値を再確認します。

よくある誤修復

表は横にスクロールできます

誤った対応なぜ危険か安全な代替
セル書式をTextに変えるだけすでに消えた桁やゼロは復元しない原CSVから列をText指定して再取り込み
16桁番号を数字として保持15桁を超えた精度が失われる可能性識別子としてTextで保持
先頭ゼロを全行へ手で追加元の桁数が一律とは限らず誤値を作る列仕様や発行元の固定桁定義を確認
日付らしい列を一括でDate化地域差やコードを日付へ誤変換列の意味と日付順を確認してから指定
CSVをExcelで開いて上書き原本を失い、元値へ戻せなくなる場合原本コピーからImportし別ブックへ保存
全列をTextにして終了必要な数値集計ができなくなる識別子と計算値を列単位で区別

再利用できる取込ルール

定期的に同じ形式のCSVを受け取る場合は、ファイルごとに「列名」「意味」「Power Query型」「照合ルール」をまとめます。例えばpostal_codeはText・先頭0を照合、record_idはText・全桁比較、quantityはDecimal number・基準合計を比較、created_atは元timezoneとdate formatを確認、という形です。これは記録例であり、実際の列定義は作成元の仕様で確定してください。

表は横にスクロールできます

列名意味Import typeQA
postal_code郵便番号・識別子Text先頭ゼロと固定桁
record_id連携用IDText全桁・重複・空欄
quantity計算する数量Number範囲・合計・小数点
date_code日付か分類コードか要確認未確定ならText仕様確定後に変換

手順を共有する場合は、完全なCSVの中身をチャットやチケットへ貼らず、必要な代表値を匿名化します。個人情報・取引ID・カード番号などを含むCSVは、組織の承認済み保管先だけで扱ってください。Excel設定やPower Query scriptに認証情報を含めないようにします。

Power Queryの日付は変換前の文字列とロケールを照合する

日付列の意味が確認できたら、表示形式だけでなく、文字列を日付へ変換する段階を確認します。例えば元の仕様が日/月/年なら、03/04/2026は4月3日です。月/日/年として取り込むと3月4日として解釈されてもエラーにならず、誤りが残ることがあります。

Power Queryの対象列でChange type→Using locale(ロケールを使用して型を変更)を選び、Dateと元データに合うlocaleを指定する方法が公式に案内されています。既に誤った日付へ変換した後の値に表示形式を設定しても、元の文字列をどう読んだかは直せません。適用したステップを確認し、元の文字列を保持した段階から変換を見直します。Microsoft:Data types in Power Query(新しいタブで開く)

次は元仕様を日/月/年と仮定した検算表です。実ファイルの取込結果ではありません。

表は横にスクロールできます

原文意図した日付確認する理由
03/04/20262026年4月3日月日が両方12以下で誤変換に気付きにくい
31/03/20262026年3月31日日と月の順を判別しやすい
31/02/2026有効な日付ではないlocaleの変更だけで正当化しない
空欄・不明表記業務ルールで扱いを決める勝手に現在日や0へ変えない

Mで変換する場合、Date.FromTextはFormatとCultureを指定できます。次は日/月/年を明示する説明例です。対象列全体への適用やエラー処理を含む完成クエリではありません。Microsoft:Date.FromText(新しいタブで開く)

Date.FromText("03/04/2026", [Format="dd/MM/yyyy", Culture="en-GB"])

元データが複数localeの混在なら、一つの設定を全行へ当てて合格にしません。作成元ごとの仕様、変換できない行、意味が曖昧な行を分け、原文と期待する日付を照合します。検算では表示された月日だけでなく、変換後の年・月・日、元件数、例外件数まで確認してください。ここではPower Queryを実行しておらず、上の表と式は仕様説明用です。

Microsoft公式情報

公式情報は2026年10月15日に確認しました。Excelの版・OSによって自動変換設定や画面が異なるため、Import previewと現行公式ヘルプで確認してください。特定のCSVを読み込んだhands-on結果ではありません。