Power Queryでデータを取り込む際、列の型変換や値の抽出などでエラーが発生することがあります。すべての行を確認するのは手間がかかるため、エラー行だけを効率的に一覧表示したいと考える方は多いでしょう。本記事では、Power Queryエディタの標準機能と少しの工夫を使ってエラー行のみを抽出する手順を詳しく解説します。エラーの原因を特定し、データ修正や再発防止に役立ててください。
【要点】この記事で確認すること
- 最初に見る場所: Power Queryエディタのエラーアイコン(緑の三角)が表示されているセルを確認します。また、エラー行を抽出するには「エラーのフィルター」機能を使うか、カスタム列でエラー判定を行います。
- 切り分けの軸: エラーの種類(型変換エラー、値エラー、データ不足など)を特定し、元データの問題なのかPower Queryの処理ステップの問題なのかを分けて考えます。
- 注意点: エラー行を一覧にした後、元データを直接編集する際は、共有元のデータソースを変更しないように注意してください。管理者が設定したPower Queryのクエリ設定を変更する場合は、事前に相談することを推奨します。
ADVERTISEMENT
目次
Power Queryで発生する主なエラーの種類
Power Queryでよく遭遇するエラーには、以下のようなものがあります。エラーの種類を理解することで、原因特定がスムーズになります。
| エラーの種類 | 発生例 | エラーメッセージ例 |
|---|---|---|
| 型変換エラー | 数値列に文字列が含まれている | 「DataConversion.Error: 型 ‘Number’ への変換に失敗しました」 |
| 列が見つからないエラー | 元データの列名が変更された | 「Expression.Error: 列 ‘xxx’ が見つかりませんでした」 |
| 値の範囲外エラー | 日付列に不正な日付が含まれている | 「Expression.Error: 値が範囲外です」 |
| null値によるエラー | nullの列で除算を行った | 「Expression.Error: この値は null です」 |
エラー行を一覧表示するための基本的な手順
Power Queryエディタの標準フィルター機能を使って、エラー行だけを表示する方法が最も簡単です。以下の手順で操作してください。
- Excelからデータを取り込み、Power Queryエディタを開きます。該当のクエリを選択し、「ホーム」タブの「データの編集」をクリックします。
- エラーが含まれている列のヘッダーにあるドロップダウン矢印(フィルターアイコン)をクリックします。
- ドロップダウンメニューの下部にある「エラー」のチェックボックスが表示されている場合は、それをオンにします。表示されない場合は、初めに「すべて選択」のチェックを外してから「エラー」のみを選択します。
- 「エラー」以外のオプション(例:数字、文字列、nullなど)はすべてチェックを外します。これにより、その列にエラーがある行だけが表示されます。
- 必要に応じて、複数の列で同様のフィルターを適用することで、すべての列でエラーがある行を抽出できます。ただし、複数列を同時にフィルターするとOR条件になるため、目的に応じて調整してください。
- エラー行を確認したら、エラーの内容を詳細に見るために、エラーセルをクリックして数式バーに表示されるエラーメッセージを確認します。
この方法は簡単ですが、エラー行が多数ある場合や、エラーが特定の列に集中している場合に適しています。ただし、元データの列数が多いとフィルター操作が煩雑になることもあります。
エラー行だけを抽出するさらに便利な方法(カスタム列の追加)
すべての列のエラーをまとめて判定したい場合や、エラーがどの列にあるかも含めて一覧にしたい場合は、カスタム列を使ってエラー有無を示すフラグを立てる方法が有効です。以下の手順で行います。
手順:エラーフラグ列の追加
- Power Queryエディタで、「列の追加」タブから「カスタム列」をクリックします。
- ダイアログで列名を入力(例:「エラーフラグ」)、数式ボックスに以下のM言語コードを入力します。
List.AnyTrue(List.Transform(Table.ColumnNames(直前のステップ名), each try Record.Field(_, _) otherwise true))
ただし、実際には各列を個別にチェックする方がわかりやすいため、次の簡易版をおすすめします。try [列名1] otherwise true or try [列名2] otherwise true ... - より実用的には、エラーが発生した列名をリストアップする以下のコードを使います。
Text.Combine(List.Select(Table.ColumnNames(変更された型), each Value.Is(Record.Field(_, _), type number) = false and Record.Field(_, _) is error), ", ")
ただし、このコードは列の型が固定されている必要があります。ここではシンプルに、各列に対してエラーかどうかを判定するカスタム関数を使うとよいでしょう。 - 多くの場合、すべての列を指定するのは手間なため、「エラーのフィルター」機能と組み合わせて、特定の列だけを対象にすることも検討してください。
- カスタム列を追加したら、その列でフィルターして「true」または空欄以外の値だけを抽出します。
カスタム列を使う方法は、繰り返し発生するエラーチェックを自動化したい場合に有効です。クエリに組み込んでおけば、データ更新のたびにエラー行が自動的に一覧化されます。
ADVERTISEMENT
エラー行の原因を確認する方法と失敗パターン
原因確認の手順
エラー行を一覧にしたら、次は原因を特定します。Power Queryエディタでエラーセルをクリックすると、数式バーに「Error: メッセージ」と表示されます。また、セル内のエラーアイコンにマウスを合わせるとツールチップで詳細を見ることもできます。よくある原因と対策は以下の通りです。
- 型変換エラー:元データに想定外の書式の値が混ざっていないか確認します。例えば、数値列に「N/A」やカンマを含む文字列が入っている場合があります。元データを修正するか、Power Query側でエラーを無視してNULLに変換するなどの処理を追加します。
- 列見つからないエラー:元データの列名が変更されていないか確認します。Power Queryのクエリ設定で「列の名前変更」ステップがある場合、元データと同期しているか見直します。
- 値の範囲外エラー:日付や数値の範囲を超えるデータがないか確認します。例えば、日付列に「2025/13/01」のような月が13のデータがあるとエラーになります。
失敗パターンと注意点
エラー行の一覧化でよくある失敗として、フィルターで「エラー」を選択したつもりが実際には別の項目が選択されていたり、複数列のフィルターが意図しないAND条件になっているケースがあります。また、元データを編集する際に、Power Queryのクエリが参照している元データファイルを直接変更すると、他のユーザーに影響が出る可能性があります。必ずコピーを取るか、担当者と相談してから修正してください。
管理者に確認すべき設定と注意点
会社の共有Excelファイルやデータベースに接続しているPower Queryクエリは、管理者が管理している場合があります。エラー行を一覧にした結果、元データの修正が必要になった場合は、管理者に以下の点を確認してください。
- データソースの変更権限:元のCSVやデータベースを変更できるのはシステム管理者のみの場合があります。
- クエリの共有設定:Power Queryクエリが共有されている場合、他のユーザーが同じクエリを使っている可能性があります。クエリにフィルターを追加すると他の人にも影響するため、事前に周知が必要です。
- Power Queryのバージョン:古いバージョンのExcelでは一部のM言語関数が使えないことがあります。最新のMicrosoft 365(旧Office 365)を推奨します。
管理者にエラー行の一覧を渡すことで、問題の早期解決につながります。また、定期的にエラーレポートを生成する仕組みを作っておくと、再発防止に役立ちます。
よくある質問(FAQ)
Q1: エラーフィルターが表示されない場合の対処法は?
列のデータ型が「any」の場合、エラーフィルターが表示されないことがあります。まず列のデータ型を適切な型(テキスト、数値など)に変更してから再度フィルターを確認してください。
Q2: 複数列のエラーを同時に抽出するにはどうすればよいか?
カスタム列で全列をチェックする方法が便利です。各列をtry otherwiseで判定し、1つでもエラーがあればフラグを立てる式を記述します。ただし、すべての列にエラーがないか確認したい場合は、カスタム列の追加後にその列でフィルターをかけます。
Q3: エラー行を一覧にした後、元データを修正したいが、元データが編集できない。
元データが社内の共有ドライブやデータベースの場合、直接編集する前に管理者に連絡してください。Power Query側でエラーを補正する処理(例:エラー時に既定値に置き換える)を追加することも検討します。
Q4: エラー行を除外してデータを読み込みたい。
エラー行を除外するには、エラーフィルターを適用した後、「ホーム」タブの「行の削除」-「エラーの削除」を使用します。ただし、この操作はエラー行を完全に削除するため、元データに戻せなくなる可能性があります。事前にバックアップを取ることをおすすめします。
まとめ
Power Queryのエラー行を一覧にする方法として、標準のフィルター機能を利用する簡単な手段と、カスタム列を追加して自動的にフラグを立てる高度な手段の2つを紹介しました。エラーの種類を理解し、原因に応じた対処を行うことで、データの品質を維持できます。管理者と連携して元データの修正やクエリ設定の変更を行う際は、事前に影響範囲を確認しましょう。日頃からエラーログを定期的にチェックする習慣をつけることで、大きなトラブルを未然に防ぐことができます。
ADVERTISEMENT
超解決 Excel・Word研究班
企業のDX支援や業務効率化を専門とする技術者チーム。20年以上のExcel・Word運用改善実績に基づき、不具合の根本原因と最短の解決策を監修しています。ExcelとWordを使った「やりたいこと」「困っていること」「より便利な使い方」をクライアントの視点で丁寧に提供します。
Office・仕事術の人気記事ランキング
- 【Word】差し込み印刷で数字の桁を整える!金額にカンマ(桁区切り)を入れる設定
- 【Teams】メッセージを「保存済み」にして後で読む!重要なチャットをブックマークして整理する技
- 【Copilot】「サービスに接続できません」エラーの原因切り分けと対処法
- 【PDF】PDFのサムネイルプレビューが表示されない!エクスプローラーの設定とAcrobat環境設定
- 【Excel】文字がセルの枠からはみ出す・隠れる!「折り返して表示」と「縮小して全体を表示」の使い分け
- 【Outlook】添付ファイルが「Winmail.dat」に化ける!受信側が困らない送信設定
- 【PDF】PDFに入力した文字の「フォント・サイズ・色」を変更するプロパティ設定
- 【Word】校閲機能の基本!赤字(変更履歴)とコメントで修正を見える化する
- 【Outlook】宛先が「オートコンプリート」に出ない・間違っている時の修正手順|履歴の削除と再構築
- 【PDF】結合するPDFの「用紙サイズ」がバラバラな時、すべてを「A4サイズ」に強制リサイズしてから結合する
