ExcelのPower Queryで先頭ゼロが消える原因と対処法|更新で再発しない直し方

ExcelのPower Queryで先頭ゼロが消える原因は、ほとんどの場合、対象列が「数値」として扱われることです。根本対策は、郵便番号や社員番号のようなコード列を最初からテキスト型で取り込み、途中の型変換ステップを見直すこと。見た目だけを戻す方法と、データそのものを守る方法は別なので、ここを分けて考えると迷いません。 (Microsoft Learn)

「更新するとまた消える」「共有相手が開くと崩れる」「CSVだけ毎回おかしくなる」という場合も、まず疑うべきは権限より型判定です。この記事では、ExcelのPower Queryで先頭ゼロが消える原因、確認する場所、更新で再発しない直し方、すでに消えた値の戻し方まで、実務で使える形で整理します。 (Microsoft Learn)

目次

ExcelのPower Queryで先頭ゼロが消える主な原因

Power Query は、CSVやテキストなどのファイル系ソースで列のデータ型を自動判定します。既定では先頭200行を見て列型とヘッダーを推定し、型変換のステップを自動追加する挙動があります。ここでコード列が数値扱いになると、00123 は 123 に変わります。 (Microsoft Learn)

たとえば顧客コード列の前半200行が 00123、00456、01000 のように数字だけに見えると、その列は数値と判定されやすくなります。すると前半の先頭ゼロが落ちるだけでなく、後ろの行に A0123 のような値が現れたときにエラーや型不一致につながることもあります。CSV コネクタでは、型推論を先頭200行で行うか、全件で行うか、そもそも行わず全列を Text にするかを選べます。 (Microsoft Learn)

消えやすい場面

  • Data > テキスト/CSVから で取り込んだ直後にコード列だけ先頭ゼロが消える
  • フォルダー結合で月次CSVをまとめたら、特定列だけ毎回 123 の形になる
  • 読み込み先シートで手で直したのに、更新 を押すとまた消える

CSV では取り込み時の型検出設定が影響し、フォルダー結合では見本となる sample query に加えた型変換が関数側にも反映されます。さらに更新時は保存済みの変換が再適用されるため、読み込み後の表だけを手で直しても再発を止められません。 (Microsoft Learn)

最初に確認する場所

適用したステップの型変換

Power Query エディターを開いたら、まず右側の 適用したステップ を見ます。Promoted Headers の直後や読み込みの早い段階に、型変換をしているステップがあれば最優先で確認してください。Power Query は列見出し左の型アイコン、Home タブ、Transform タブ、右クリックの Change Type など複数の場所から型を設定できるので、後から別のステップで再び数値化されていないかまで見るのがコツです。 (Microsoft Learn)

CSV の Source ステップと型検出

CSV の場合は、最初の取り込み画面や Source ステップの編集画面で型検出の扱いを確認します。安全なのは、先頭ゼロを守りたい列がある間は自動判定に任せず、いったん Text で受けることです。特にコード列が多いファイルでは、「最初だけ数値に見える」ことがよくあるので、この初期設定で差が出ます。 (Microsoft Learn)

ブック単位・ファイル単位の型検出設定

同じ事故が何度も起きるなら、Power Query エディターの Options も確認対象です。Microsoft Learn では、unstructured sources 向けの型検出をグローバル設定と current file 設定の両方で切り替えられると説明されています。新規ファイルで毎回先頭ゼロが消えるなら、ここが既定のままになっていないか見てください。 (Microsoft Learn)

フォルダー結合なら Transform Sample file

複数ファイルの結合では、最終クエリではなく Transform Sample file 側を直すのが近道です。Microsoft Learn のサンプルでも、sample query に加えた変換は関数へ反映され、ヘッダー昇格後に型変換ステップが自動追加されることがあります。結合クエリだけ直しても、sample query 側に数値化が残っていると再発します。 (Microsoft Learn)

先頭ゼロを消さない対処法

新規取り込みなら、コード列は最初から Text で受ける

  1. Data > テキスト/CSVから でファイルを選ぶ
  2. 取り込み画面で Transform Data を開く
  3. 先頭ゼロを守りたい列を選び、Home > Transform > Data Type > Text に変更する
  4. 型変更の確認が出たら Replace Current を選び、最後に Close & Load する

この流れなら、表示だけでなくクエリの変換として Text が保存されるので、次回更新でも同じルールが再適用されます。数値として計算したい列だけを後から数値型に戻すほうが失敗しにくいです。 (マイクロソフトサポート)

既存クエリは「型変換ステップを直す」が本筋

すでに読み込んでいるクエリは、先頭ゼロが落ちる原因になっている型変換ステップを削除するか、対象列だけ Text に変更します。ここで大事なのは、1か所だけ直して終わりにしないことです。後続ステップで再度数値型に変えていれば、更新のたびにまた同じ現象が起こります。データ型は「最初から最後まで一貫しているか」で判断してください。 (Microsoft Learn)

海外CSVや日付列が混ざるなら Using Locale も見る

先頭ゼロの主因は型判定ですが、海外システムから出した CSV ではロケール違いで日付や小数点が誤解釈され、型変換が連鎖的に壊れることがあります。日付や数値の解釈が怪しい列は、単純な Change Type ではなく Using Locale を使って変換ルールを明示すると安全です。 (Microsoft Learn)

すでに消えた値を復旧する方法

元データにゼロが残っているなら、クエリを直して再更新する

最も確実なのは、元データに戻って Power Query 側の型を直し、再更新する方法です。Power Query は保存済みの変換を更新時に再適用するため、クエリさえ正せば、元データに残っている 00123 は更新で戻せます。逆に、読み込み先シートだけを手で直しても、次の更新で上書きされます。 (マイクロソフトサポート)

元データ自体が 123 で保存済みなら、完全復元は原則できない

00123 がすでに 123 として保存・上書きされている場合、元の桁数情報は失われています。このとき Power Query だけで「本当は何桁だったか」を推測することはできません。復旧できるのは、「全件5桁」「社員番号は8桁固定」のように業務ルールが明確な列だけです。

固定桁なら、カスタム列で次のように補えます。

Text.PadStart(Text.From([社員番号]), 8, "0")

Text.PadStart は、指定した長さになるまで先頭に文字を埋める関数です。桁数ルールが確定している列では有効ですが、桁数が不定のIDに無理に使うと誤データを作るので注意してください。 (Microsoft Learn)

見た目だけ戻せればよいなら、Excel の表示形式でもよい

取引先へ見せる帳票だけ整えたいなら、Excel の表示形式 00000 のようなカスタム書式でも対応できます。ただしこれは「見た目の補正」です。Microsoft Support でも、これは workbook 内だけで使う対処で、他システムのデータソースとして使う場合の本筋ではないと説明されています。さらにこの方法は、16桁未満の数値コード向きです。外部出力や照合に使う列なら、Power Query 側で Text に直してください。 (マイクロソフトサポート)

更新や共有で再発させないコツ

手で直す場所はシートではなくクエリ

更新すると先頭ゼロがまた消えるのは、Refresh が「前回保存した変換」をそのまま再実行するからです。つまり、直すべき場所は読み込み先のシートではなく、Power Query の変換手順そのものです。読み込み結果を手編集して運用すると、更新のたびにやり直しになり、共有時も整合性が崩れます。 (マイクロソフトサポート)

権限・資格情報は「ゼロ消失」より「更新できない」を見る項目

Data > Get Data > Data Source Settings では、資格情報の編集やプライバシーレベルの設定ができます。共有相手が refresh できない、データソースに再ログインを求められる、複数データソースの結合だけ失敗する、といった症状はここを疑うべきです。プライバシーレベルはデータソース間の情報のやり取りを制御し、共有時は相手にもデータソースへのアクセス権が必要になることがあります。 (マイクロソフトサポート)

切り分けはこの順で行うと早い

  1. 00123 が 123 になるなら、最初にデータ型を見る
  2. 更新に失敗する、サインインを求められる なら、資格情報と権限を見る
  3. 他の人が更新したときだけ再発する なら、クエリの型変換と共有先のデータソース設定を両方確認する
  4. フォルダー結合だけおかしい なら、最終クエリではなく Transform Sample file を開く

この順で見ると、症状に対して確認場所を間違えにくくなります。 (Microsoft Learn)

まず今日やること

ExcelのPower Queryで先頭ゼロが消えるとき、最優先で疑うべきは「表示形式」ではなく「データ型」です。まずクエリを開いて型変換ステップを確認し、対象列を Text にそろえたうえで更新してください。元データにゼロが残っていれば、それで戻る可能性が高いです。元データ側まで失われているなら、固定桁ルールがある列だけ Text.PadStart か表示形式で補い、ルールがない列は元ファイルの取り直しを検討する、という順番が安全です。 (Microsoft Learn)

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次