ADVERTISEMENT

【Excel】Power Queryで社員番号が指数表記になる時の読み込み設定確認

【Excel】Power Queryで社員番号が指数表記になる時の読み込み設定確認
🛡️ 超解決

Power Queryを使って社員番号をExcelに読み込んだ際、数字が「1.23E+05」のように指数表記(科学的表記)になってしまう現象があります。これは特に桁数の多い社員番号や、先頭に0が付いている番号で発生しやすい問題です。指数表記のままではデータの照合や表示が正しく行えず、業務に支障を来します。本記事では、この現象が発生する原因と、Power Queryの読み込み設定を変更して正しく表示する方法を解説します。また、設定変更ができない場合の代替手段や管理者への確認ポイントも含め、実務ですぐに使える情報を提供します。

【要点】この記事で確認すること

  • 最初に見る場所: Power Queryエディタの「データ型」設定です。社員番号が含まれる列が「整数」や「小数」になっていないかを確認します。
  • 切り分けの軸: 問題の原因はデータソース側(元のCSVやテーブル)とPower Query側の2つです。まずは元データが正しい文字列かどうかを確認します。
  • 注意点: 会社PCではPower Queryのデータ型変更が制限されている場合があります。その場合は管理者に連絡し、共有クエリの設定変更を依頼してください。自分で勝手にソースデータを変更すると業務に影響が出る恐れがあります。

ADVERTISEMENT

指数表記になる原因とその影響

Excelの指数表記(例:1.23E+05)は、セルの表示形式が「標準」または「数値」で、桁数が多すぎる場合に自動的に適用されます。Power Queryでは、データを読み込むときに各列のデータ型を自動判別します。社員番号のように数字だけの文字列は、数字として認識されやすいため、整数型や小数型に変換されることがあります。その結果、桁数が多い場合は指数表記で表示され、先頭の0も失われます。

影響としては、社員番号を使ったVLOOKUPやXLOOKUPなどの検索関数が正しく動作しなくなること、印刷や画面表示で桁が省略されて誤認が生じることなどが挙げられます。特に人事データや勤怠データなど、社員番号をキーとして扱う業務では重大な問題です。

自動データ型変換の仕組み

Power Queryは、最初の数行をサンプルとして、列に含まれる値のパターンからデータ型を推測します。たとえば、すべての行が数字であれば整数型や小数型に、日付形式であれば日付型に変換されます。この推測は便利な反面、社員番号のように見た目が数字でも文字列として扱いたいデータに対しては誤った変換を行います。

お探しの解決策が見つからない場合は、こちらの「Excelトラブル完全解決データベース」で他のエラー原因や解決策をチェックしてみてください。

現象を確認する手順

まずは、どの段階で指数表記が発生しているのかを確認します。

  1. 元のデータ(CSVファイルやExcelテーブルなど)をメモ帳などで開き、社員番号の列が正しい文字列として格納されているか確認します。たとえば「00123456」のように先頭に0がある場合、それがそのまま表示されているかを見ます。
  2. ExcelのPower Queryエディタを開きます。「データ」タブ → 「テーブル/範囲から」または「ファイルから」でデータを読み込みます。
  3. Power Queryエディタが起動したら、社員番号列の左側に表示されているアイコンを確認します。「123」というアイコンは整数型、「1.2」は小数型、「ABC」はテキスト型を示します。アイコンが「123」や「1.2」になっていれば、指数表記の原因です。
  4. その列をクリックして選択し、画面上部の「データ型」ドロップダウンが「整数」や「小数」になっていないかを確認します。
  5. Excelシートに読み込んだ後、実際にセルが指数表記になっているセルを選択し、数式バーに正しい数字が入っているか確認します。数式バーに正しい数字が表示されていれば、表示形式の問題です。

上記の手順により、問題がPower Queryのデータ型設定にあるのか、Excelの表示形式にあるのか、あるいは元データ自体の問題かを切り分けられます。

Power Queryでデータ型を正しく設定する方法

最も確実な対策は、Power Queryエディタ内で社員番号列のデータ型を明示的に「テキスト」に変更することです。手順を以下に示します。

  1. Excelで「データ」タブを開き、「クエリと接続」をクリックしてクエリ一覧を表示します。該当するクエリを右クリックし、「編集」を選択してPower Queryエディタを起動します。
  2. エディタが開いたら、社員番号の列(通常は先頭付近)をクリックして選択します。
  3. 「ホーム」タブの「データ型」グループにあるドロップダウンをクリックし、「テキスト」を選択します。
  4. データ型変更の確認ダイアログが表示されたら、「現在のものを置き換える」をクリックします。これにより、列のデータ型がテキストに固定されます。
  5. 「閉じて読み込む」をクリックして、変更を適用します。Excelシート上の社員番号が正しく文字列として表示されます。
  6. もし複数の列がある場合は、他の列(氏名、部署など)も必要に応じて適切なデータ型に変更します。

なお、データ型を変更しても先頭の0が表示されない場合は、元のデータに0が含まれているかを再度確認してください。CSVなどで0が欠落している場合は、ソースデータの修正が必要です。

読み込み後のセル書式設定との違い

Power Queryのデータ型を「テキスト」にせず、Excel側でセルの書式を「文字列」に変更しても指数表記を防げるように思えますが、実際にはデータがすでに数値として読み込まれているため、完全には戻せません。たとえば、数値として読み込まれた123456が指数表記になっている場合、セルの書式を「文字列」に変更しても値は「123456」とはならず、指数表記のまま文字列化されます。このため、必ずPower Queryの段階でテキスト型に変更する必要があります。

方法 効果 注意点
Power Queryで「テキスト」型に変更 完全に文字列として保持され、指数表示にならない クエリ編集が必要。共有クエリの場合は管理者権限が必要な場合あり
Excel側でセル書式を「文字列」に変更 数値として読み込まれたデータは指数表記のまま文字列化される 元に戻せず、数字の先頭ゼロも復元できない
元データの社員番号にアポストロフィを付ける CSVではテキストとして扱われるが、Power Queryの自動変換で数値になる場合あり データソースの修正が必要。社内システムから出力する形式による

ADVERTISEMENT

失敗パターンとその対策

実際の業務でよく見られる失敗パターンをいくつか紹介します。

パターン1: データ型変更を忘れて次回読み込む

Power Queryでデータ型を変更した後、次回同じクエリを更新するときも設定は保持されます。しかし、新しいデータソースを読み込む際に同じ設定を適用し忘れると、再び指数表記になります。対策として、クエリの設定をテンプレート化するか、読み込み後に必ずデータ型を確認する習慣をつけましょう。

パターン2: 数値と文字列が混在している

社員番号の中に、数字だけのものと「A001」のような英字入りのものが混在している場合、Power Queryは自動的に「テキスト」型と判断するため、指数表記にはなりません。しかし、一度整数型と判断された後に新しいデータで文字列が混ざると、エラーが発生します。この場合も、列全体をテキスト型に設定することで回避できます。

パターン3: 小数型になってしまう

社員番号に小数点が含まれている場合(例:12345.67)、Power Queryは小数型を割り当て、指数表記になることがあります。この場合もテキスト型に変更することで文字列として扱えます。ただし、小数点を残したいかどうかは業務ルールに従ってください。

管理者に確認すべき事項

会社のPCで共有クエリや組織のデータソースを使用している場合、Power Queryエディタの設定変更が制限されていることがあります。その場合は、以下の内容を管理者に伝えて対応を依頼してください。

  • 該当クエリの共有設定: 自分が編集できない場合、管理者がクエリのデータ型を変更して再公開してもらう必要があります。
  • 元データの提供形式: 社員番号がCSVやデータベースから出力されるとき、最初から文字列として出力されるように依頼できるか確認します。
  • Power Queryの更新ポリシー: 毎回手動で型変更を行うのではなく、クエリ定義にデータ型変換ステップを組み込む方法を相談します。

管理者は、Power Queryの「M言語」を直接編集することで、データ型を明示的に指定できます。たとえば、Table.TransformColumnTypes(変更前テーブル,{{"社員番号", type text}}) という式を追加すれば、強制的にテキスト型にできます。

よくある質問(FAQ)

Q. Power Queryでデータ型をテキストに変更したのに、まだ指数表記になる

データ型の変更が正しく適用されていない可能性があります。Power Queryエディタで適用ステップを確認し、「変更された型」というステップが正しい順序で存在するか確認してください。また、クエリの更新後にもう一度読み込み直してください。

Q. 先頭の0を保持したいが、テキスト型にしても消えてしまう

元のデータ(CSVなど)に先頭の0が含まれているかを確認します。例えばCSVをメモ帳で開き、「00123」のように0が8桁で保存されていれば問題ありませんが、ExcelでCSVを開いたときに0が削除されている場合は、CSVのインポート設定を見直す必要があります。Power Queryの「ファイルからCSV」で読み込む場合、エディタ内で「元のファイルでデータの前処理」を行わない設定にしてください。

Q. 毎回手動でデータ型を変更するのが面倒

クエリを一度設定して保存すれば、次回以降は「更新」ボタンをクリックするだけで同じ変換が適用されます。また、そのクエリを「接続のみ」として再利用することも可能です。

Q. 社員番号が数値として計算に使いたい場合もある

その場合は、Power Queryで元のデータを数値として読み込み、表示形式を工夫する方法もあります。ただし、先頭の0が重要な場合は文字列として保持し、計算が必要な場合は数値に変換する別の列を用意することをおすすめします。

まとめ

Power Queryで社員番号が指数表記になる主な原因は、自動データ型変換によって数値型に変更されることです。対策の基本は、Power Queryエディタ内で該当列のデータ型を「テキスト」に設定することです。Excel側の表示形式変更では根本的な解決にならないため、必ずクエリの段階で対応しましょう。管理者による制限がある場合は、組織の設定変更を依頼してください。本記事で紹介した手順を実践することで、社員番号を正しく表示し、業務の効率化とデータの正確性を維持できます。


📊
Excelトラブル完全解決データベースこの記事以外にも、様々なエラー解決策をまとめています。困った時の逆引きに活用してください。

ADVERTISEMENT

この記事の監修者
📈

超解決 Excel・Word研究班

企業のDX支援や業務効率化を専門とする技術者チーム。20年以上のExcel・Word運用改善実績に基づき、不具合の根本原因と最短の解決策を監修しています。ExcelとWordを使った「やりたいこと」「困っていること」「より便利な使い方」をクライアントの視点で丁寧に提供します。

🏆
超解決 Excel検定 あなたのExcel実務能力を3分で測定!【1級・2級・3級】

ADVERTISEMENT