CSVファイルをPower Queryで取り込むと、商品コードや郵便番号など先頭に0が付いたデータが自動的に数値扱いされ、「00123」が「123」に変わってしまうことがあります。この現象はPower Queryが各列のデータ型を自動判定する際に、数値として認識しやすく変換するために発生します。本記事では、型変換の仕組みを理解し、先頭の0を保持したままデータを取り込むための具体的な確認手順と対処法を解説します。会社の業務で困っている方は、ぜひ参考にしてください。
【要点】この記事で確認すること
- 最初に見る場所: Power Queryエディターの「変換」タブにある「データ型」の列アイコン(「123」や「ABC」など)。ここで各列がどの型になっているかを確認します。
- 切り分けの軸: 端末側のPower Query設定(自動データ型検出)、アカウント側の権限(編集権限があるか)、管理設定側(組織のプライバシーレベルや更新設定)の三つで原因を切り分けます。
- 注意点: 会社PCではPower Queryの自動データ型検出設定を変更すると、他のクエリに影響を与える可能性があります。管理者に確認せずに変更するのは避けてください。また、型変換はクエリ設定として保存されるため、最初に正しく設定すれば以降の更新でも保持されます。
ADVERTISEMENT
Power Queryで先頭の0が消える原因
原因は、Power QueryがCSVファイルを読み込む際に、各列のデータ型を自動的に判定する仕組みにあります。列のデータがすべて数字(例:00123、0456)の場合、Power Queryは「数値型(整数)」と判断し、先頭の0を意味のないものとして削除します。この動作は、Power Queryの「データ型検出」機能がデフォルトで有効になっているために発生します。また、CSVファイル自体には引用符や書式設定が含まれていないため、Power Queryは数値として扱うことが多いのです。
具体例として、次のようなCSVファイルを考えます。
コード,名称 00123,商品A 0456,商品B 0007,商品C
このファイルをPower Queryで読み込むと、既定の設定では「コード」列が数値型になり、結果として「123」「456」「7」と表示されます。この段階では、元のデータがすでに失われているように見えますが、Power Queryのエディターで型をテキストに変更することで元の値に戻すことが可能です。ただし、それは読み込みの段階でデータ型が変更される前に、型変換の設定を修正する必要があります。
型変換の確認と修正手順
先頭の0を維持するには、Power Queryエディターで該当列のデータ型を「テキスト」に変更する必要があります。以下の手順に従ってください。
手動で列の型を変更する手順
- Excelで「データ」タブを開き、「データの取得と変換」グループから「テーブル/範囲から」または「CSVから」を選択して、該当のCSVファイルを読み込みます。
- Power Queryエディターが開いたら、左側の「クエリ」ペインで読み込んだクエリを選択します。
- 先頭の0が消えている列のヘッダーを見ると、列の左側に「123」のようなアイコンが表示されています。これは列が数値型であることを示します。
- その列のヘッダーを右クリックし、表示されるメニューから「データ型の変更」→「テキスト」を選択します。または、ヘッダーの左側にある「123」アイコンをクリックし、ドロップダウンから「テキスト」を選んでも構いません。
- 型を変更すると、列の値が元の「00123」のように表示され、先頭の0が復元されます。この状態で「閉じて読み込む」または「閉じて次へ読み込む」をクリックして、ワークシートにデータを反映させます。
複数列を一括で型変更する方法
複数の列に先頭の0が含まれる場合は、一括で型を変更する方法が便利です。Power Queryエディターで、Ctrlキーを押しながら変更したい列ヘッダーをクリックして複数選択します。その後、右クリックメニューから「データ型の変更」→「テキスト」を選択すれば、一度にすべての列をテキスト型に変更できます。
型が正しく設定されたかの確認方法
型変更後、データが正しく取り込まれているかどうかは、Power Queryエディターのプレビュー画面で確認できます。また、列ヘッダーの左側に表示されるアイコンが「ABC」(テキスト型を示す)になっていることを確認してください。もしも数値型のままの場合は、手順が正しく実行されていない可能性があります。
型変換が自動で行われる仕組みと注意点
Power Queryの自動データ型検出は、CSVファイルの最初の数行をサンプリングして、各列のデータ型を推測します。すべての行が数字で構成されている列は数値型、日付形式のデータは日付型、それ以外はテキスト型と判定されます。この検出は、「データ型の検出」という設定で制御でき、既定では「各列のデータ型を自動的に検出する」が有効になっています。
注意点として、一度テキスト型に変更した設定は、そのクエリの設定として保存されます。つまり、次に同じCSVファイルを更新したときも、型設定は保持されるため、先頭の0が消えることはありません。ただし、CSVファイルの列の順番や構造が変わると、型設定がリセットされる可能性があります。
ADVERTISEMENT
失敗パターンと回避策
型変換の作業でよくある失敗パターンを紹介し、それぞれの回避策を説明します。
すべての列が勝手に数値型になる
CSVファイルのすべての列が数字のみで構成されている場合、Power Queryはすべての列を数値型に変換します。これを防ぐには、読み込み前にPower Queryエディターで「データ型の検出」を「なし」に変更する方法もありますが、会社PCでは組織のポリシーで設定が変更できないことがあります。代わりに、先頭行に列名として「コード」などのテキストを入れておくことで、少なくともその列はテキスト型として認識されやすくなります。
テキスト型に変更しても先頭の0が復元されない
これは、CSVファイル内のデータに不要な空白や引用符が含まれている場合に発生します。例えば、データが「 00123」のようにスペースで始まっていると、Power Queryはその空白も含めてテキストとして扱うため、先頭の0は見た目上保持されます。しかし、実際には空白が邪魔になることもあります。解決策として、Power Queryエディターで「変換」タブの「トリム」を使用して空白を取り除いたり、「置換」で引用符を削除したりしてから型をテキストに変更してください。
クエリの更新で元に戻る
型設定を保存したにもかかわらず、クエリを更新すると再び数値型に戻ってしまうことがあります。これは、クエリ設定が正しく保存されていないか、またはCSVファイルのソースが変更されたことが原因です。対策として、Power Queryエディターで「閉じて読み込む」ではなく「閉じて次へ読み込む」を選択し、その後クエリのプロパティで「バックグラウンド更新を許可する」がオンになっていることを確認してください。また、更新のたびに型設定がリセットされる場合は、手動で再度型を変更する必要があります。
管理者へ確認すべき設定
会社のPCでは、Power Queryの動作に影響を与える管理者設定がいくつかあります。以下の点を担当者に確認してください。
自動データ型検出のポリシー
グループポリシーまたはレジストリで、Power Queryの自動データ型検出が強制されている場合があります。この設定が有効だと、エディターで「データ型の検出」を変更しても無効になることがあります。管理者に「既定のデータ型検出を無効にできるか」を相談してみてください。
プライバシーレベルの設定
Power Queryのプライバシーレベルが「組織」や「パブリック」に設定されていると、データソースの結合などに制限がかかることがあります。先頭の0が消える原因には直接関係しませんが、複数のデータソースを扱う場合は影響する可能性があります。管理者にプライバシーレベルの設定を確認してもらい、必要に応じて変更してもらいましょう。
クエリの更新に関する設定
ワークブックの共有設定やバックグラウンド更新の許可は、組織のポリシーで制限されている場合があります。型設定を保存しても更新のたびに初期化される場合は、管理者に「クエリの自動更新」や「バックグラウンド更新」の設定を確認してください。
比較表:状況別の型変換の違い
| 状況 | 自動型変換 | 手動でテキスト型に変更 |
|---|---|---|
| CSVの先頭行に列名がある場合 | 数値列は数値型、テキスト列はテキスト型 | 先頭0の列のみテキスト型に変更 |
| CSVの先頭行に列名がない場合 | 全列が数値型になる可能性が高い | すべての列をテキスト型に変更する必要がある |
| 列に数字と文字が混在している場合 | テキスト型として判定されることが多い | 通常は変更不要 |
| 先頭0の列が数値列の途中にある場合 | 列全体が数値型として判定される | その列のみテキスト型に変更 |
よくある質問
Q. CSVをExcelで開くたびに先頭の0が消えるのはなぜですか?
A. ExcelでCSVファイルを直接開く場合も、自動的にデータ型が判定されるため、先頭の0が消えることがあります。これを防ぐには、Power Queryを使用して型をテキストに変更してから読み込むか、またはExcelの「データ」タブから「テキスト/CSVから」を選択し、画面内の「データ型の検出」を「なし」に設定してから読み込んでください。
Q. テキスト型に変更したのに、列の先頭に ‘(アポストロフィ)が付いてしまいました。どうすればいいですか?
A. これはPower Queryではなく、Excelワークシート上でテキストとして数値を表示するために自動的に付加されたものです。アポストロフィが気になる場合は、Excelの書式設定で「文字列」に設定するか、Power Queryで読み込む前にCSVファイルの列にダブルクォーテーションで囲むなどの対策を行ってください。
Q. 会社のExcelではPower Queryの「データ型の検出」設定を変更できません。どうすればいいですか?
A. 設定がグレーアウトしている場合は、管理者がグループポリシーで制限している可能性があります。その場合、Power Queryエディターで列ごとに型を手動で変更する方法が唯一の回避策です。また、管理者に自動検出を無効にするよう依頼することも検討してください。
まとめ
Power QueryでCSVを取り込む際に先頭の0が消える原因は、自動データ型検出による数値型への変換です。解決策は、Power Queryエディターで該当列のデータ型を「テキスト」に変更することであり、これにより元の値が保持されます。複数列がある場合は一括変更も可能です。会社のPCでは管理者設定が影響する場合があるため、必要に応じて担当者に確認してください。正しい型変換を設定すれば、以降の更新でも問題なく先頭の0を維持できます。
ADVERTISEMENT
超解決 Excel・Word研究班
企業のDX支援や業務効率化を専門とする技術者チーム。20年以上のExcel・Word運用改善実績に基づき、不具合の根本原因と最短の解決策を監修しています。ExcelとWordを使った「やりたいこと」「困っていること」「より便利な使い方」をクライアントの視点で丁寧に提供します。
Office・仕事術の人気記事ランキング
- 【Word】差し込み印刷で数字の桁を整える!金額にカンマ(桁区切り)を入れる設定
- 【Teams】メッセージを「保存済み」にして後で読む!重要なチャットをブックマークして整理する技
- 【Copilot】「サービスに接続できません」エラーの原因切り分けと対処法
- 【PDF】PDFのサムネイルプレビューが表示されない!エクスプローラーの設定とAcrobat環境設定
- 【Excel】文字がセルの枠からはみ出す・隠れる!「折り返して表示」と「縮小して全体を表示」の使い分け
- 【PDF】PDFに入力した文字の「フォント・サイズ・色」を変更するプロパティ設定
- 【Word】校閲機能の基本!赤字(変更履歴)とコメントで修正を見える化する
- 【Outlook】添付ファイルが「Winmail.dat」に化ける!受信側が困らない送信設定
- 【Outlook】宛先が「オートコンプリート」に出ない・間違っている時の修正手順|履歴の削除と再構築
- 【PDF】結合するPDFの「用紙サイズ」がバラバラな時、すべてを「A4サイズ」に強制リサイズしてから結合する
