次の方法で共有


列のピボット解除

Power Query では、列を属性値のペアに変換できます。列は行になります。

ピボット解除列の図。

左側のテーブルに空白の列と行があり、属性値 A1、A2、および A3 が列ヘッダーとして示されている図。 この表では、A1 列に V1、V4、V7 の値が含まれています。 A2 列には、V2、V5、V8 の値が含まれています。 A3 列には、V3、V6、V9 の値が含まれています。 列をピボット解除すると、ダイアグラムの右側のテーブルに空白の列と行が含まれます。 属性列には、A1、A2、A3 が 3 回繰り返された 9 行も含まれています。 最後に、値列には値 V1 から V9 が含まれます。

たとえば、次のようなテーブルでは、国の行と日付列によって値のマトリックスが作成されるため、スケーラブルな方法でデータを分析することは困難です。

列のピボット解除のための初期テーブルの例。

[テキスト] データ型に Country 列が設定され、2023 年 6 月 1 日、2023 年 7 月 1 日、2023 年 8 月 1 日の 3 つの列が整数データ型として設定されているテーブルのスクリーンショット。 Country 列には、行 1 の USA、行 2 のカナダ、行 3 のパナマが含まれます。

代わりに、次の図に示すように、ピボットされていない列を含むテーブルにテーブルを変換できます。 変換されたテーブルでは、フィルター処理する属性として日付を使用する方が簡単です。

アンピボット列の例としての目標テーブル。

[国] 列セットがテキスト データ型、属性列セットがテキスト データ型、値列が整数データ型として設定されているテーブルのスクリーンショット。 Country 列には、最初の 3 行に USA、次の 3 行にカナダ、最後の 3 行にパナマが含まれます。 [属性] 列には、2023 年 6 月 1 日の日付が 1 行目、4 行目、7 行目に含まれます。 2023 年 7 月 1 日の日付は、2 行目、5 行目、8 行目に表示されます。 最後に、2023 年 8 月 1 日の日付は、3 行目、6 行目、9 行目にあります。

この変換の重要な点は、テーブル内に 1 つの列に含まれる一連の日付があるということです。 各日付と国のそれぞれの値は異なる列に配置する必要があり、属性と値のペアが効果的に作成されます。

Power Query では、常に 2 つの列を使用して属性値ペアが作成されます。

  • 属性: ピボット解除された列見出しの名前。
  • : ピボット解除された各列見出しの下にあった値。

ユーザー インターフェイスには複数の場所があり、 ピボット解除列を見つけることができます。 ピボット解除する列を右クリックするか、リボンの [ 変換 ] タブからコマンドを選択できます。

列のピボットを解除する右クリック操作のスクリーンショット。

[変換] タブの [列のピボット解除] コマンドのスクリーンショット。

テーブルから列をピボット解除するには、次の 3 つの方法があります。

  • 列のピボット解除
  • 他の列のピボット解除
  • 選択した列のみをピボット解除する

列のピボット解除

前に説明したシナリオでは、最初にピボット解除する列を選択する必要があります。 必要な数の列を選択する場合は、 Ctrl キー を押します。 このシナリオでは、 Country という名前の列を除くすべての列を選択します。 列を選択したら、選択した列のいずれかを右クリックし、[ ピボット解除] を選択します。

テーブル内の日付列のピボットを解除する方法を示します。

2023 年 6 月 1 日、2023 年 7 月 1 日、2023 年 8 月 1 日の列が選択され、ショートカット メニューで [ピボット解除] 列コマンドが選択されているテーブルのスクリーンショット。

その操作の結果は、次の図に示す結果になります。

最終テーブルで列をアンピボットします。

特別な考慮事項

前の手順でクエリを作成した後、最初のテーブルが次のスクリーンショットのように更新されるとします。

更新されたソース テーブルの列をピボット解除します。

元の Country、2023 年 6 月 1 日、2023 年 7 月 1 日、および 2023 年 8 月の日付列が同じテーブルのスクリーンショット。2023 年 9 月 1 日の日付列が追加されています。 Country 列には引き続き米国、カナダ、パナマの値が含まれていますが、4 行目に英国が追加され、メキシコが 5 行目に追加されています。

2023 年 9 月 1 日 (2023 年 9 月 1 日) の新しい列と、英国とメキシコの国/地域に 2 つの新しい行を追加していることに注意してください。

クエリを更新する場合は、更新された列に対して操作が実行されますが、最初に選択されていない列 (この例では Country) には影響しません。 この動作は、ソース テーブルに追加した新しい列もピボット解除されることを意味します。

次の図は、新しく更新されたソース テーブルを使用した更新後のクエリの外観を示しています。

最終的に更新されたテーブルのピボットを解除します。

Country、Attribute、Value の列を含むテーブルのスクリーンショット。 Country 列の最初の 4 行には USA、2 番目の 4 行にはカナダ、3 番目の 4 行にはパナマ、4 行目には UK、5 番目の 4 行にはメキシコが含まれます。 [属性] 列には、2023 年 6 月 1 日、2023 年 7 月 1 日、および 2023 年 8 月 1 日の日付が最初の 4 行に含まれ、各国ごとに繰り返されます。

他の列のピボット解除

テーブル内の残りの列のピボット解除とピボット解除を行わない列を選択することもできます。 この操作では、 他の列のピボット 解除が行われます。

[国] 列のショートカット メニューが選択され、[他の列のピボット解除] コマンドが強調されているテーブルのスクリーンショット。

その操作の結果は、 ピボット解除列から取得した結果とまったく同じ結果になります。

他の列のピボット解除のサンプル目標テーブル。

[国] 列セットがテキスト データ型、属性列セットがテキスト データ型、値列が整数データ型として設定されているテーブルのスクリーンショット。 Country 列には、最初の 3 行に USA、次の 3 行にカナダ、最後の 3 行にパナマが含まれます。 [属性] 列には、2023 年 6 月 1 日の日付が 1 行目、4 行目、7 行目に含まれます。 2023 年 7 月 1 日の日付は、2 行目、5 行目、8 行目です。 2023 年 8 月 1 日の日付は、3 行目、6 行目、9 行目に表示されます。

この変換は、不明な数の列を持つクエリにとって重要です。 この操作により、選択した列を除くテーブルのすべての列のピボットが解除されます。 この種類の変換は、シナリオのデータ ソースが更新で新しい日付列を取得した場合に理想的なソリューションです。これらの新しい列が選択されてピボット解除されるためです。

特別な考慮事項

ピボット 解除操作 と同様に、クエリが更新され、データ ソースからさらに多くのデータが取得された場合、以前に選択した列を除くすべての列がピボット解除されます。

このプロセスを説明するために、次の図のような新しいテーブルがあるとします。

ピボット解除ソース テーブルのサンプル。

Country、2023 年 6 月 1 日、2023 年 7 月 1 日、2023 年 8 月 1 日、2023 年 9 月 1 日の列を含むテーブルのスクリーンショット。すべての列がテキスト データ型に設定されています。 Country 列には、上から下、米国、カナダ、パナマ、英国、メキシコが含まれます。

[Country]\ (国\) 列を選択し、[ 他の列のピボット解除] を選択すると、次の結果が生成されます。

他の列のピボット解除のサンプルでは、最終テーブルが更新されました。

Country、Attribute、Value の列を含むテーブルのスクリーンショット。 Country 列と Attribute 列は Text データ型に設定されます。 [値] 列は、値全体のデータ型に設定されます。 Country 列の最初の 4 行には USA、2 番目の 4 行にはカナダ、3 番目の 4 行にはパナマ、4 行目には UK、5 番目の 4 行にはメキシコが含まれます。 [属性] 列には、2023 年 6 月 1 日、2023 年 7 月 1 日、2023 年 8 月 1 日、および 2023 年 9 月 1 日の 4 行が含まれ、各国ごとに繰り返されます。

選択した列のみをピボット解除する

この最後のオプションの目的は、テーブルから特定の列のみをピボット解除することです。 このオプションは、データ ソースの不明な数の列を処理するシナリオで重要です。 これにより、選択した列のみをピボット解除できます。

この操作を実行するには、ピボット解除する列を選択します。この例では、 Country 列を除くすべての列を選択します。 次に、選択した列のいずれかを右クリックし、[ 選択した列のみをピボット解除] を選択します

日付列が選択され、選択されている列のみをピボット解除することが強調されているテーブルのスクリーンショット。

この操作によって、前の例と同じ出力が生成されることがわかります。

選択した列の最終テーブルのみをピボット解除します。

[国] 列セットがテキスト データ型、属性列セットがテキスト データ型、値列が整数データ型として設定されているテーブルのスクリーンショット。 Country 列には、最初の 3 行に USA、次の 3 行にカナダ、最後の 3 行にパナマが含まれます。 [属性] 列には、2023 年 6 月 1 日の日付が 1 行目、4 行目、7 行目に含まれます。 2023 年 7 月 1 日の日付は、2 行目、5 行目、8 行目です。 2023 年 8 月 1 日の日付は、3 行目、6 行目、9 行目に表示されます。

特別な考慮事項

更新を行った後、ソース テーブルが新しい 9/1/2020 列と英国とメキシコの新しい行を持つよう変更された場合、クエリの出力は前の例とは異なります。 たとえば、更新後にソース テーブルが次の図のテーブルに変更されるとします。

選択した列のみをピボット解除するためのピボット解除の更新されたソース テーブルのスクリーンショット。

クエリの出力は次の図のようになります。

選択した列のみをピボット解除して最終テーブルを更新したスクリーンショット。

ピボット解除操作は 2020 年 6 月 1 日、2020 年 7 月 1 日、および 2020 年8 月 1 日 の列にのみ適用されたため、ヘッダー 9/1/2020 の列は変更されません。