Web からデータを取得する際の Excel Power Query でのエラーの処理

Web からデータを取得する際の Excel Power Query でのエラーの処理
Web からデータを取得する際の Excel Power Query でのエラーの処理

Excel Power Query でのデータ取得エラーの管理

Excel Power Query を使用して社内 URL からデータを取得する場合、さまざまな応答コードが発生することがよくあります。通常、これらの応答コードは、データの取得が成功したか (200)、見つからなかったか (404) を示します。 Excel で正確なデータを表現するには、これらの応答コードを適切に処理することが不可欠です。

この記事では、Power Query 関数を使用して内部 URL からデータを取得して表示する方法について説明します。データ取得応答コードが 404 であるシナリオの管理、エラーの防止、スムーズなデータ処理の確保に重点が置かれます。必要な手順を段階的に説明し、これらのエラーを効果的に処理するためのソリューションを提供します。

指示 説明
Json.Document Web サービスから取得した JSON データを解析します。
Web.Contents 指定された URL からデータを取得します。
try ... otherwise 操作を試行し、エラーが発生した場合は別の結果を提供します。
Record.ToTable レコードをテーブル形式に変換します。
Table.SelectRows 指定された条件に基づいてテーブルをフィルターします。
Table.Pivot 個別の値に基づいて行を列に変換します。

Power Query でのエラー処理を理解する

提供されたスクリプトでは、まず、 Web.Contents 指定された URL からデータをフェッチする関数。この関数は、 id パラメータ。このデータは次を使用して解析されます Json.Document、JSON 応答を Power Query が処理できる形式に変換します。応答には、 Instrument インデックスを使用してアクセスするレコード (Instrument{0})。この記録から、以下を抽出します。 Data_Flow を確認するために Data_Response_Code、データ取得の成功または失敗を示します。

もし Data_Response_Code が 200 の場合、必要なデータ フィールドの抽出に進みます - Instrument_Full_Name そして CFI_Code - から Instrument_Common 記録。これらのフィールドは、次を使用してテーブル形式にピボットされます。 Table.Pivot。応答コードが 404 で、データが見つからなかったことを示す場合、出力フィールドを明示的に設定することで、出力フィールドが空白になるようにします。このアプローチでは、 try...otherwise 潜在的な問題を検出し、デフォルトで安全な状態に設定するコンストラクト。

Power Query M 言語スクリプトの詳細な内訳

2 番目のスクリプトは、最初のスクリプトを拡張して、 try...otherwise コンストラクトを作成し、データ取得中に発生したエラーに対するフォールバック メカニズムを提供します。 JSON 応答を解析した後、 Json.Document そしてアクセスすると、 Instrument レコードを取得しようとします。 Data_Response_Code。この操作が失敗した場合、スクリプトはデフォルトの 404 に設定され、残りのプロセスが中断されることなく続行されます。

応答コードが確認されると、スクリプトは次のいずれかの方法でデータ フィールドを抽出します。 Instrument_Common 応答コードが 404 の場合は空白に設定します。この関数は FetchData 次に、これらの結果を既存のテーブルの新しい列に追加するために使用されます。 Table.AddColumn。この方法により、堅牢なエラー処理が可能になり、一部のデータ ポイントが欠落している場合や Web リクエストが失敗した場合でも、データの整合性が確実に維持されます。全体として、これらのスクリプトは、Power Query での Web データ取得エラーを処理するための効果的な手法を示しています。

Power Query でのデータ取得エラーの処理

Power Query M 言語の使用

(id as text)=>
let
    Source = Json.Document(Web.Contents("https://example.com/data?Identifier=" & id)),
    Instrument = Source[Instrument]{0},
    DataFlow = Instrument[Data_Flow],
    ResponseCode = DataFlow[Data_Response_Code],
    Output = if ResponseCode = 200 then
        let
            InstrumentCommon = Instrument[Instrument_Common],
            FullName = InstrumentCommon[Instrument_Full_Name],
            CFI = InstrumentCommon[CFI_Code]
        in
            [FullName = FullName, CFI_Code = CFI]
    else
        [FullName = "", CFI_Code = ""]
in
    Output

Power Query によるデータの整合性の確保

Excel Power Query M 言語の使用

let
    FetchData = (id as text) =>
    let
        Source = Json.Document(Web.Contents("https://example.com/data?Identifier=" & id)),
        Instrument = Source[Instrument]{0}?
        ResponseCode = try Instrument[Data_Flow][Data_Response_Code] otherwise 404,
        Output = if ResponseCode = 200 then
            let
                InstrumentCommon = Instrument[Instrument_Common],
                FullName = InstrumentCommon[Instrument_Full_Name],
                CFI = InstrumentCommon[CFI_Code]
            in
                [FullName = FullName, CFI_Code = CFI]
        else
            [FullName = "", CFI_Code = ""]
    in
        Output,
    Result = Table.AddColumn(YourTableName, "FetchData", each FetchData([Id]))
in
    Result

Power Query コマンドについて

Power Query でのデータ取得エラーの処理

Power Query M 言語の使用

(id as text)=>
let
    Source = Json.Document(Web.Contents("https://example.com/data?Identifier=" & id)),
    Instrument = Source[Instrument]{0},
    DataFlow = Instrument[Data_Flow],
    ResponseCode = DataFlow[Data_Response_Code],
    Output = if ResponseCode = 200 then
        let
            InstrumentCommon = Instrument[Instrument_Common],
            FullName = InstrumentCommon[Instrument_Full_Name],
            CFI = InstrumentCommon[CFI_Code]
        in
            [FullName = FullName, CFI_Code = CFI]
    else
        [FullName = "", CFI_Code = ""]
in
    Output

Power Query によるデータの整合性の確保

Excel Power Query M 言語の使用

let
    FetchData = (id as text) =>
    let
        Source = Json.Document(Web.Contents("https://example.com/data?Identifier=" & id)),
        Instrument = Source[Instrument]{0}?
        ResponseCode = try Instrument[Data_Flow][Data_Response_Code] otherwise 404,
        Output = if ResponseCode = 200 then
            let
                InstrumentCommon = Instrument[Instrument_Common],
                FullName = InstrumentCommon[Instrument_Full_Name],
                CFI = InstrumentCommon[CFI_Code]
            in
                [FullName = FullName, CFI_Code = CFI]
        else
            [FullName = "", CFI_Code = ""]
    in
        Output,
    Result = Table.AddColumn(YourTableName, "FetchData", each FetchData([Id]))
in
    Result

Power Query でのエラー処理の高度なテクニック

Power Query でのエラー処理の 1 つの側面は、予期したデータが欠落している場合や、サーバーの応答が予期したものと異なる場合のシナリオを適切に管理できることです。これは、断続的な問題が発生する可能性がある Web ソースからの大規模なデータセットを扱う場合に特に役立ちます。を利用して、 try...otherwise コンストラクトは、クエリが失敗しないことを保証するだけでなく、さらなる分析のためにこれらのエラーをログに記録する機会も提供します。エラーのログは、エラー メッセージをキャプチャする別の列を作成することで実現でき、ユーザーは根本原因を効率的に特定して対処できるようになります。

Power Query のもう 1 つの強力な機能は、複数のクエリとデータ ソースを結合できることです。さまざまなエンドポイントからの結果を統合するマスター クエリを作成することで、ユーザーはデータ処理ワークフローを合理化できます。このアプローチは、完全なデータセットをフェッチするためにページネーションや複数の識別子を必要とする API を扱う場合に特に便利です。 Power Query 内にループ構造を実装すると、これらのタスクを自動化し、手動介入を減らし、データの精度を向上させることができます。これにより、生産性が向上するだけでなく、より堅牢なデータ統合プロセスが保証されます。

Power Query エラー処理に関するよくある質問と解決策

  1. とは何ですか try...otherwise Power Query で構築しますか?
  2. try...otherwise コンストラクトは、操作を試行し、操作が失敗した場合に代替結果を提供することにより、エラーを適切に処理するために使用されます。
  3. Power Query でエラーをログに記録するにはどうすればよいですか?
  4. エラーをログに記録するには、 try...otherwise 構造を構築し、識別とトラブルシューティングを容易にします。
  5. の目的は何ですか Web.Contents 関数?
  6. Web.Contents 関数は、Power Query で指定された URL からデータをフェッチするために使用されます。
  7. Power Query で欠落したデータを処理するにはどうすればよいですか?
  8. データの欠落は、応答コードをチェックし、データが利用できない場合はデフォルト値 (空の文字列など) を設定することで処理できます。 if...then...else 構築します。
  9. とは Json.Document のために使用される?
  10. Json.Document 関数は、Web サービスから取得した JSON データを解析するために使用されます。
  11. Power Query は複数のデータ ソースを処理できますか?
  12. はい。Power Query では、さまざまなエンドポイントからの結果を統合するマスター クエリを作成することで複数のデータ ソースを結合でき、データ統合効率が向上します。
  13. Power Query でのデータの取得を自動化するにはどうすればよいですか?
  14. データのフェッチは、複数の識別子またはページ分割されたデータを処理するループ構造を実装することで自動化でき、手動介入を削減できます。
  15. とは Table.Pivot のために使用される?
  16. Table.Pivot 関数は、個別の値に基づいて行を列に変換するために使用され、データの編成に役立ちます。
  17. Power Query を使用するときにデータの整合性を確保するにはどうすればよいですか?
  18. データの整合性は、応答コードを検証し、エラーを適切に処理して、正確で完全なデータのみが処理されるようにすることで保証できます。

まとめ:

Web からデータを取得するときに Excel Power Query でエラーを効果的に処理することは、データの整合性を確保し、データ処理の中断を回避するために重要です。適切なコマンドと、try...otherwise や Json.Document などの構造を使用すると、データが欠落している場合や応答が期待どおりにならない場合のシナリオを適切に管理できます。このアプローチは、精度の維持に役立つだけでなく、Excel でのデータ ワークフローの堅牢性も強化します。