[Power Query]OLE DB または ODBC エラーの解決方法 (リレーション・マージ)

Power Queryで発生するOLE DB または ODBC エラーの画像

このページでは、下記エラーの原因・解決方法を紹介します。
・”OLE DB または ODBC エラー: [DataFormat.Error] Number に変換できませんでした。。
・”OLE DB または ODBC エラー: HRESULT からの例外:0x80040E4E。 予期しない例外が発生しました。

Power Queryで発生するOLE DB または ODBC エラーの画像。
目次

このエラーに関して

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
data1
使用するデータの例示。data2
data2
data1 とdata2のProduct Noを使用してマージしたデータ。
マージ1

data1 data2を更新時に下記の最下段のデータが追加されたとします。

data1の更新後のデータ。data1'
data1′
data2の更新後のデータ。data2'
data2′

解決手順

  1. 更新時に追加されるデータの確認
    Product Noはもともとは、整数のデータ型式だったが、更新時に10005-a というテキストデータが混入される。
  2. Power Query エディターからデータの型式を変更。
    クエリの設定 > 適用したステップ 内の変更された型を選択。
  3. エディター画面で一致するデータ型式に変更
    この例の場合、Product Noをテキスト型に変更しました。
  4. 閉じて適用し、Power Query エディターを閉じる。
  5. データの更新ボタンをクリック
Power Query エディターでの操作画面。エラーの解決方法を記載。
  • エディター内でデータ型式を変更
    {“Product No”, Int64.Type} → {“Product No”, type text}
  • どの列データを変更する必要があるか見極めが必要

データ型式を変更しているので、ほかの部分に影響がないか確認をしましょう。

余談

Microsoft Power BI Communityでも同様の質問があったみたいです。
質問者がソース元のファイルをいじってたら勝手に解決していた(意訳)とあるので、たまにこのようなエラーは出るのかもしれないですね。

まとめ

  • データ型式の不一致などが原因で発生するエラー。
  • Power Queryでデータ型式を変更して解決。
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

技術系職社会人:業務でPowerBI を活用/データ分析/インドア派/趣味:ゲーム、カプセルトイ収集/[III]Mosnterが好き/勉強中:Blender/日々習得した内容をアウトプットしていきます!

目次