次の方法で共有


テキストを JSON または XML として解析する

Power Query では、内容を JSON または XML のテキスト文字列として識別することにより、テキスト文字列を含む列の内容を解析できます。

この解析操作は、Power Query エディターの次の場所にある [解析] オプションを選択することで実行できます。

  • [変換] タブ - このオプションは、コンテンツを解析して既存の列を変換します。

    [変換] タブ内の解析オプションのスクリーンショット。

  • 列の追加タブ - このオプションは、選択した列の内容を解析するテーブルに新しい列を追加します。

    [列の追加] タブ内の解析オプションのスクリーンショット。

この記事では、解析する必要がある次の列を含むサンプル テーブルを使用します。

  • SalesPerson - 次の例に示すように、営業担当者の FirstNameLastName に関する情報を含む、解析されていない JSON テキスト文字列が含まれます。

    {
       "id" : 249319,
       "FirstName": "Lesa",
       "LastName": "Byrd"
    }
    
  • - 次の例に示すように、アカウントが割り当てられている部門に関する情報を含む、解析されていない XML テキスト文字列が含まれます。

    <root>
       <id>1</id>
       <Country>USA</Country>
       <Division>BI-3316</Division>
    </root>
    

サンプル テーブルには、アカウント番号と日付に割り当てられたアカウントを含む Account 列も含まれています。

アカウント、担当者、国の列が割り当てられているサンプル ソース テーブルのスクリーンショット。

目標は、前述の列を解析し、それらの列の内容を展開して、次の出力を得ることです。

最終的なサンプル出力テーブルのスクリーンショット。

JSON として

SalesPerson 列を選びます。 次に、[変換] タブの [解析] ドロップダウン メニューから [JSON] を選びます。これらのステップにより、SalesPerson 列はテキスト文字列からレコード値に変換されます。 レコード値のセル内の空白の場所のどこかを選ぶと、画面の下部にレコードの内容の詳細なプレビューが表示されます。

JSON テキスト文字列の解析結果のスクリーンショット。

SalesPerson 列ヘッダーの横にある展開アイコンを選びます。 列の展開メニューから、FirstName フィールドと LastName フィールドのみを選びます。 また、[元の列名をプレフィックスとして使用します] が選ばれていることを確認してください。

展開する解析済みの JSON テキスト文字列フィールドのスクリーンショット。

この操作の結果は次のテーブルのようになります。

展開された JSON フィールドのスクリーンショット。SalesPerson の 名と姓の列が SalesPerson 列に置き換えられます。

XML として

Country 列を選びます。 次に、[変換] タブの [解析] ドロップダウン メニューから [XML] ボタンを選びます。これらのステップにより、Country 列はテキスト文字列からテーブル値に変換されます。 テーブル値のセル内の空白の場所のどこかを選ぶと、画面の下部にテーブルの内容の詳細なプレビューが表示されます。

解析 XML テキスト文字列の結果のスクリーンショット。

Country 列ヘッダーの横にある展開アイコンを選びます。 展開された列メニューから、CountryDivision フィールドのみを選びます。 また、[元の列名をプレフィックスとして使用します] が選ばれていることを確認してください。

展開する解析済みの XML テキスト文字列フィールドのスクリーンショット。

すべての新しい列をテキスト列として定義できます。 その操作の結果、求めている出力テーブルが得られます。

サンプルの最終出力テーブルのスクリーンショット。