Power Queryで「更新」を実行すると、
[Expression.Error]キーがテーブルのどの行とも一致しませんでした。
というエラーが発生することがあります。
よくある原因と解決例の備忘録です。
内容:
なお、確認のExcelは「Microsoft® Excel® for Microsoft 365 MSO」(バージョン2502)です。
エラー内容
[Expression.Error]キーがテーブルのどの行とも一致しませんでした
このエラーが発生する原因はいくつかありますが、従来動作していたPowerQueryで突然発生した場合は、元データの形式が変更になっている可能性が高いです。
例:「シート名」が変更になった等(元々、シート名を固定で設定しているとき)
Power Query で、キーがテーブル内の行と一致しなかったというエラーが返される理由は多数あります。 このエラーが発生すると、マッシュアップ エンジンでは、検索しているテーブル名を見つけることができません。 このエラーが発生する理由は次のとおりです。
- テーブル名が (たとえば、データ ソース自体で) 変更された。
(後略)
具体的な事象と対応例
エラーメッセージの画面
Power Queryで「更新」を実行すると、以下のエラーが表示されてデータ更新が完了できません。
PowerQueryの編集画面でエラー発生箇所の確認
PowerQueryの編集画面(Power Query Editorの起動)で、最終ステップから順番にステップを確認し、エラーが最初に発生しているステップを確認します。
このケースでは、次のTable.SelectColumnsによるテーブル変換で、Errorが発生していました(この事例では、売上データ2023年5月.xlsxのみエラーになっています)
そこで、元のデータを確認してみるとシート名が違うために、エラーとなっていました。
このケースでは、PowerQueryで、Excelのシートを特定して取り込む設定をしたクエリでした。クエリ変更するのは少し慣れも必要なので、元データのシート名を変更でエラーを解決しました。
= (パラメーター1) => let
ソース = Excel.Workbook(パラメーター1, null, true),
売上_Sheet = ソース{[Item="売上",Kind="Sheet"]}[Data],
昇格されたヘッダー数 = Table.PromoteHeaders(売上_Sheet, [PromoteAllScalars=true])
in
昇格されたヘッダー数
以上、Power Queryで「[Expression.Error]キーがテーブルのどの行とも一致しませんでした」の原因と解決例でした。