データ ソース エラーの処理 (Power Query)

適用先
Excel for Microsoft 365

最終的にデータ ソースをセットアップし、データを思いどおりに整形したときは、きっと素晴らしい気分になります。 外部データ ソースからデータを更新するときに、操作がスムーズに進むことを願っています。 しかし、常にそうとは限りません。 途中でデータ フローを変更すると、データを更新しようとしたときにエラーとして終了する問題が発生する可能性があります。 エラーの中には、簡単に修正できるもの、一時的なもの、診断が難しいものがあります。 次に、発生するエラーを処理するための一連の戦略を示します。 

ETL (抽出、変換、読み込み) の概要 エラーが発生する可能性がある場所

2 種類のエラー

データを更新するときに発生する可能性のあるエラーは 2 種類あります。

ローカル Excel ブックでエラーが発生した場合、少なくともトラブルシューティングの労力は限定され、より管理しやすくなります。 更新されたデータによって関数のエラーが発生したか、データによってドロップダウン リストに無効な条件が作成された可能性があります。 これらのエラーは面倒ですが、追跡、特定、修正するのは非常に簡単です。 Excel では、エラー処理機能も改善されており、メッセージの明確化と、問題の解決に役立つターゲット ヘルプ トピックへのコンテキスト依存リンクが用意されています。

リモート ただし、リモートの外部データ ソースからのエラーは、まったく別の問題です。 通りの向かい、地球の裏側、またはクラウドにあるシステムで何かが起こったのです。 これらの種類のエラーには、別のアプローチが必要です。 一般的なリモート エラーは次のとおりです。

  • サービスまたはリソースに接続できませんでした。 接続状態を確認します。
  • アクセスしようとしているファイルが見つかりませんでした。
  • サーバーが応答しておらず、メンテナンス中の可能性があります。 
  • このコンテンツは利用できません。 削除されたか、一時的に使用できない可能性があります。
  • お待ちください...データが読み込まれています。

エラーの調査

発生する可能性のあるエラーに対処するのに役立ついくつかの推奨事項を次に示します。

特定のエラーを見つけて保存するまず、[クエリ] & [接続] ウィンドウを確認します ([データ] >[クエリ] & [接続] の順に選択し、接続を選択して、ポップアップを表示します)。 発生したデータ アクセス エラーを確認し、提供されたその他の詳細をメモします。 次に、クエリを開いて、各クエリ ステップで特定のエラーを確認します。 簡単に識別できるように、すべてのエラーは黄色の背景で表示されます。 完全に理解できない場合でも、エラー メッセージを書き留めたり、画面キャプチャしたりします。 同僚、管理者、または organization のサポート サービスが、何が起こったのかを理解し、解決策を提案するのを手伝ってくれる場合があります。 詳細については、「Power Query でのエラーの処理」を参照してください。

ヘルプ情報を入手するOffice ヘルプとトレーニング サイトを検索します。 これには、広範なヘルプ コンテンツだけでなく、トラブルシューティングの情報も含まれています。 詳細については、「 最近の Excel for Windows の問題に関する修正プログラムと回避策」を参照してください。

技術コミュニティを活用する Microsoft コミュニティ サイトを使用して、問題に特に関連するディスカッションを検索します。 あなたが問題を経験した最初の人ではない可能性が高く、他の人がそれに対処しており、解決策を見つけた可能性さえあります。 詳細については、「 Microsoft Excel コミュニティ 」および「 Office Answers コミュニティ」を参照してください。

Web を検索する 好みの検索エンジンを使用して、適切な議論や手がかりを提供する可能性のある Web 上の他のサイトを探します。 これには時間がかかる場合がありますが、特に厄介な質問に対する答えを探すために、より広い網を張る方法です。

Office サポートに問い合わせる この時点で、問題をよりよく理解できるでしょう。 これにより、会話に集中し、Microsoft サポートに費やす時間を最小限に抑えることができます。 詳細については、「 Microsoft 365 および Office カスタマー サポート」を参照してください。

データ ソース エラーについて

問題を解決できない場合もありますが、問題が何であるかを正確に特定して、他の人が状況を理解し、それを解決するのに役立ちます。

サービスとサーバーに関する問題 断続的なネットワーク エラーと通信エラーが原因である可能性があります。 できる最善のことは、待ってからもう一度やり直すことです。 場合によっては、問題が解消されることもあります。

場所または空き時間帯の変更 データベースまたはファイルが移動された、破損した、保守のためにオフラインになった、またはデータベースがクラッシュした。 ディスク デバイスが破損し、ファイルが失われることがあります。 詳細については、「Windows 10 で失われたファイルを復元する」を参照してください。

認証とプライバシーの変更 アクセス許可が機能しなくなったり、プライバシー設定が変更されたりすることが突然発生する可能性があります。 どちらのイベントでも、外部データ ソースへのアクセスを妨げる可能性があります。 何が変更されたのかを確認するには、管理者または外部データ ソースの管理者に確認してください。 詳細については、「データ ソースの設定とアクセス許可を管理する」および「プライバシー レベルを設定する」を参照してください。

開いているファイルまたはロックされているファイル テキスト、CSV、またはブックが開かれている場合は、ファイルが保存されるまで、ファイルに対する変更は更新に含まれません。 また、ファイルが開いている場合はロックされている可能性があり、閉じられるまでアクセスできません。 これは、他のユーザーがサブスクリプション以外のバージョンの Excel を使用している場合に発生する可能性があります。 ファイルを閉じるか、チェックインするように依頼します。 詳細については、「 編集用にロックされているファイルのロックを解除する」を参照してください。

バックエンドでのスキーマの変更 誰かがテーブル名、列名、またはデータ型を変更しました。 これは決して賢明ではなく、大きな影響を与える可能性があり、データベースでは特に危険です。 データベース管理チームがこのようなことが起こらないように適切な制御を行っていることを願っていますが、間違いは発生します。 

クエリの折りたたみによるエラーのブロック Power Query は、できる限りパフォーマンスを改善しようとします。 多くの場合、より優れたパフォーマンスと容量を利用するために、サーバーでデータベースクエリを実行する方が優れています。 このプロセスは、クエリ フォールディングと呼ばれます。 ただし、データが侵害される可能性がある場合、Power Query はクエリをブロックします。 たとえば、ブック テーブルと SQL Server テーブルの間にマージを定義するとします。 ブックのデータ プライバシーは [プライバシー] に設定されていますが、SQL Server データは [組織] に設定されています。 プライバシーは組織よりも制限が厳しいため、Power Query はデータ ソース間の情報交換をブロックします。 クエリの折りたたみはバックグラウンドで発生するため、ブロック エラーが発生すると意外な場合があります。 詳細については、「 クエリ フォールディングの基本」、「 クエリ フォールディング」、および 「クエリ診断を使用したフォールディング」を参照してください。

Power Query のエラーについて

多くの場合、Power Query を使用すると、問題の原因を正確に特定し、自分で修正できます。

名前が変更されたテーブルと列 元のテーブル名、列名、または列ヘッダーを変更すると、ほぼ確実にデータを更新するときに問題が発生します。 クエリは、テーブル名と列名に依存して、ほとんどすべてのステップでデータを整形します。 元のテーブル名と列名をデータ ソースと一致させることが目的でない限り、変更または削除しないでください。 

データ型の変更 データ型を変更すると、特に引数に特定のデータ型を必要とする可能性がある関数で、エラーや意図しない結果が発生することがあります。 たとえば、数値関数のテキスト データ型の置換や、数値以外のデータ型で計算を試みる場合などが挙げられます。 詳細については、「 データ型の追加または変更」を参照してください。

セルレベルのエラー これらの種類のエラーは、クエリの読み込みを妨げることはありませんが、セルに Error を表示します。 メッセージを表示するには、 Error を含むテーブル セルの空白を選択します。 エラーを削除したり、置き換えたり、単に保持したりできます。 セル エラーの例は次のとおりです。

  • 変換 NA を含むセルを整数に変換しようとします。
  • 数学的 テキスト値に数値を乗算しようとするとします。
  • 連結演算子 文字列を組み合わせようとしましたが、そのうちの 1 つが数値です。

安全に実験と反復処理を行う変換が悪影響を与える可能性があるかどうか確信が持てない場合は、クエリをコピーし、変更をテストし、Power Query コマンドのバリエーションを反復処理します。 コマンドが機能しない場合は、作成した手順を削除して、もう一度やり直してください。 同じスキーマと構造のサンプル データをすばやく作成するには、複数の列と行からなる Excel テーブルを作成してインポートします (テーブル/範囲からデータを選択>)。 詳細については、「 テーブルを作成する 」と「 Excel テーブルからインポートする」を参照してください。

賢く変換する

Power Query エディターのデータを使って何ができるかを初めて理解したとき、あなたはキャンディー ショップにいる子供のような気分になるかもしれません。 しかし、キャンディーをすべて食べたいという誘惑に抵抗してください。 更新エラーを誤って引き起こす可能性のある変換を行わないようにする必要があります。 列をテーブル内の別の位置に移動するなど、一部の操作は簡単で、Power Query は列名で列を追跡するため、将来的に更新エラーにつながることはありません。

他の操作では、更新エラーが発生する可能性があります。 一般的な経験則の 1 つがあなたの導きの光になります。 元の列に大幅な変更を加えないでください。 安全策として、コマンド (列の追加カスタム列、列複製など) を使用して元の列をコピーし、コピーしたバージョンの元の列に変更を加えます。 以下は、更新エラーにつながる場合がある操作と、よりスムーズに進めるためのベスト プラクティスです。

演算 ガイダンス
フィルター処理 クエリのできるだけ早い段階でデータをフィルタリングすることで効率を向上させ、不要なデータを削除して不要な処理を削減します。 また、 オートフィルター を使って特定の値を検索または選択し、日付、日時、日付のタイムゾーンの各列 ( など) で使える種類固有のフィルターも活用できます。
データ型と列ヘッダー Power Query では、最初のソース ステップの直後に 2 つのステップがクエリに自動的に追加されます。[昇格されたヘッダー] はテーブルの最初の行を列ヘッダーに昇格し、変更された型は、各列の値を調べた結果、任意のデータ型からデータ型に変換します。 これは便利なポイントですが、不注意による更新エラーを防ぐために、この動作を明示的に制御したい場合があります。
詳細については、「 データ型の追加または変更 」および「 行および列ヘッダーの昇格または降格」を参照してください。
の名前を変更する 元の列の名前を変更しないでください。 他のコマンドまたはアクションによって追加された列には、[ 名前の変更 ] コマンドを使用します。
詳細については、「 列の名前を変更する」を参照してください。
列の分割 元の列ではなく、元の列のコピーを分割します。
詳細については、「 テキストの列を分割する」を参照してください。
列のマージ 元の列ではなく、元の列のコピーをマージします。
詳細については、「列をマージする」を参照してください。
を削除する 保持する列の数が少ない場合は、[ 列の選択] を使用して、必要な列を保持します。
列を削除する場合と他の列を削除する場合の違いを考えてみましょう。 他の列の削除を選択し、データを更新すると、前回の更新以降にデータ ソースに追加された新しい列は、クエリで [列の削除] ステップが再度実行されたときに他の列と見なされるため、検出されないままになる可能性があります。 列を明示的に削除した場合、この状況は発生しません。
ヒント 列を非表示にするコマンドはありません (Excel にあるような)。 ただし、多数の列があり、作業に集中できるようにするためにそれらの多くを非表示にしたい場合は、次の操作を行います。列を削除し、作成されたステップを記憶し、そのステップを削除してからクエリをワークシートに読み込み直します。
詳細については、「 列の削除」を参照してください。
の置換 値を置換する場合は、データ ソースを編集していません。 むしろ、クエリ内の値を変更しているのです。 次にデータを更新するときに、検索した値がわずかに変わっているか、存在していない可能性があり、 そのために置換コマンド が最初に意図したとおりに機能しない可能性があります。
詳細については、「 値の置換」を参照してください。
ピボットピボット解除 [ 列のピボット ] コマンドを使用すると、列をピボットし、値を集計しないと、エラーが発生する可能性がありますが、複数の値が返されます。 この状況は、予期しない方法でデータを変更する更新操作の後に発生する可能性があります。
すべての列が認識されておらず、更新操作中に追加された新しい列もピボット解除する場合は、[ その他の列のピボット 解除] コマンドを使用します。
データ ソース内の列数が不明で、更新操作後に選択した列がピボットされないようにする場合は、[ 選択した列のみをピボット解除] コマンドを使用します。
詳細については、「列のピボット」と「列のピボット解除」を参照してください。

時代の先を行く

エラーの発生を防ぐ外部データ ソースが organization 内の別のグループによって管理されている場合、外部データ ソースへの依存関係を認識し、下流で問題を引き起こす可能性のあるシステムの変更を回避する必要があります。 データ、レポート、グラフ、およびデータに依存するその他のアーティファクトへの影響の記録を保持します。 コミュニケーションラインを設定して、影響を理解し、物事を円滑に進めるために必要な措置を講じられるようにします。 不要な変更を最小限に抑え、必要な変更の結果を予測するコントロールを作成する方法を見つけます。 確かに、これは言うのは簡単ですが、実行するのは難しいこともあります。

クエリ パラメーターによる将来性 クエリ パラメーターを使用して、たとえば、データの場所に対する変更を軽減します。 フォルダー パス、ファイル名、URL など、新しい場所に代入するクエリ パラメーターを設計できます。 クエリ パラメーターを使用して問題を軽減するには、他にもあります。 詳細については、「 パラメータークエリの作成」を参照してください。

関連項目

Power Query for Excel のヘルプ

Power Query を使用する場合のベスト プラクティス (docs.com)