Power BIで出てくる「キーがテーブルのどの行とも一致しませんでした」の原因と解決策
こんにちは。
今回はPower BIではよく出てくる下記のエラーメッセージの原因についてです。
『OLE DB または ODBC エラー: [Expression.Error] キーがテーブルのどの行とも一致しませんでした。』
これよく出てくるんですよね~。
しかもPower BIでもよく使う機能に関連したエラーなので、まだPower BI始めたばかりの初級レベルの頃に出てきます。。。
確か自分も1時間くらい格闘した記憶が。。。
こちらの原因と解決策を紹介していきます。
動画版も作ったので動画がいい人はこちらを見てください。
ということで、下図がMicrosoft Power BI公式ページのエラー原因の解説です。
URL:https://learn.microsoft.com/ja-jp/power-query/common-issues
自分の経験則では95%一番上の色塗り部分が原因のことが多いです。
「テーブル名(たとえば、データソース自体)で変更された」という理由です。
このように活字で書かれるとわかりずらいですが、
簡単に言うとデータのシート名やフィールド名が正しくないですよ~という警告です。
例えば下図のようなExcelのデータソースをPower BIに取り込むとします。
Power BIではすでにPower Queryを使ってデータを加工したり、
DAXで計算式を作ってしまっています。
データソースのシート名を変えてみます。
Excelは複数の人で使うケースもあるのでこういうことはよくあります。
Power BIは、元のデータのシート名を使うことが前提にありますので、
シート名が変わったりしてしまうとエラーになってしまうのですね。
或いは、複数のデータをフォルダでインポートするケースでも出てきます。
フォルダでのインポートは便利ですが、その全てのシート名は同じものである必要があります。
1つでも違うシート名が存在していると、エラーになります。
これもエラーとしては頻繁に起きますね。。。
ちょっとわかりずらいですが、下図のようにエラー対象のテーブルが表示されます。
Contents
Expression_Errorの解決策!!
1.データソースを統一する
ということで、解決策としては、
一番手っ取り早いのがデータソースを元に戻す、あるいは統一すること。
後はPower Query等の式の引数にデータソース名を指定している場合は、
その式を直せば解消されますね。
2.シート名を指定せずIndexで指定する
もう1つのやり方が、
Power BIのNavigationでシート名をIndexで登録すること。
上図のように、インポートするシートをシート名ではなく、
Indexで指定すれば例えシート名が変わったとしても問題ナッシングですね。
それでもうまくいかん!という方は、Power Queryで全てのシートをインポートするよう設定をすることなのです。
これも例えばフォルダから一括でデータをインポートするケースなんかではよくあるのですが、、、
ここら辺のやり方は、別記事にまとめて別途共有していこうかなと思います。
コメントを残す