このページでは、下記エラーの原因・解決方法を紹介します。
・”OLE DB または ODBC エラー: [DataFormat.Error] Number に変換できませんでした。。“
・”OLE DB または ODBC エラー: HRESULT からの例外:0x80040E4E。 予期しない例外が発生しました。“
このエラーに関して
Power BIなどでPower Queryを使用してデータをインポートしている場合、データ更新のタイミングでこのようなエラーが出てしまうことがあります。
“OLE DB または ODBC エラー: [DataFormat.Error] Number に変換できませんでした。。“
“OLE DB または ODBC エラー: HRESULT からの例外:0x80040E4E。 予期しない例外が発生しました。“
特に下の”予期しない例外が発生しました。“だけ見るとどう対処していいか見当がつかない方も多いと思います。
エラーの原因
データ更新時にこのエラーが出た場合、更新して追加されたデータの型式が元のデータと異なっていることが原因である可能性が高いです。
- “OLE DB または ODBC エラー: [DataFormat.Error] Number に変換できませんでした。。“
Power query上でデータ型式:整数に変換できないデータが更新時に追加されてしまった場合に発生します。 - “OLE DB または ODBC エラー: HRESULT からの例外:0x80040E4E。 予期しない例外が発生しました。“
上記のデータ型式にエラーのあるテーブルを使用してマージ(クエリの追加)を行う場合に発生します。
解決方法
更新時に追加されるデータに合わせたデータ型式に変更します。
ここでは、下記のdata1、data2を使用して説明します。
データ例
data1 とdata2のProduct Noを使用してマージ(クエリの追加)します。
data1 data2を更新時に下記の最下段のデータが追加されたとします。
解決手順
- 更新時に追加されるデータの確認
Product Noはもともとは、整数のデータ型式だったが、更新時に10005-a というテキストデータが混入される。 - Power Query エディターからデータの型式を変更。
クエリの設定 > 適用したステップ 内の変更された型を選択。 - エディター画面で一致するデータ型式に変更
この例の場合、Product Noをテキスト型に変更しました。 - 閉じて適用し、Power Query エディターを閉じる。
- データの更新ボタンをクリック
- エディター内でデータ型式を変更
{“Product No”, Int64.Type} → {“Product No”, type text} - どの列データを変更する必要があるか見極めが必要
データ型式を変更しているので、ほかの部分に影響がないか確認をしましょう。
余談
Microsoft Power BI Communityでも同様の質問があったみたいです。
質問者がソース元のファイルをいじってたら勝手に解決していた(意訳)とあるので、たまにこのようなエラーは出るのかもしれないですね。
まとめ
- データ型式の不一致などが原因で発生するエラー。
- Power Queryでデータ型式を変更して解決。