列のピボット
Power Query では、列内の一意の値ごとに集計値を含むテーブルを作成できます。 一意の値ごとにグループ化され、各値の集計計算が実行され、列が新しいテーブルにピボットされます。
左側に空白の列と行があるテーブルを示す図。 Attributes 列には 9 つの行が含まれ、A1、A2、A3 が 3 回繰り返されています。 Values 列には、上から下に値 V1 ~ V9 が含まれています。 列がピボットされた結果、右側のテーブルには空白の列と行があり、列ヘッダーとして Attributes の値 A1、A2、A3 が含まれています。また、A1 列には値 V1、V4、V7 が、A2 列には値 V2、V5、V8 が、A3 列には値 V3、V6、V9 が含まれています。
次の図のようなテーブルを考えます。
Text データ型として設定された Country 列、Data データ型として設定された Date 列、整数データ型として設定された Value 列を含むテーブル。 Country 列には、最初の 3 行に USA、次の 3 行に Canada、最後の 3 行に Panama が含まれています。 Date 列には、行 1、4、7 に 6/1/2020、行 2、5、8 に 7/1/2020、行 3、6、9 に 8/1/2020 が含まれています。
このテーブルでは、国と日付別の値が単純なテーブルに含まれています。 この例では、次の図に示すように、このテーブルを日付列がピボットされたテーブルに変換します。
Text データ型に設定されている Country 列と、整数データ型として設定された 6/1/2020、7/1/2020、8/1/2020 列を含むテーブル。 Country 列には、行 1 に Canada、行 2 に Panama、行 3 に USA が含まれています。
注意
列のピボット操作では、テーブルの左側にある最初の列の値に基づいてテーブルが昇順に並べ替えられます。
列をピボットするには
ピボットする列を選択します。
[変換] タブの [任意の列] グループで、 [列のピボット] を選びます。
![[列のピボット] コマンド [列のピボット] コマンド。](images/me-pivot-columns-icon.png)
[列のピボット] ダイアログ ボックスの [値列] ボックスの一覧で、 [Value] を選択します。
![[列のピボット] ダイアログ ボックス [列のピボット] ダイアログ ボックス。](images/me-pivot-columns-basic-menu.png)
既定の Power Query では、集計として合計が計算されますが、 [詳細設定] オプションを選択すると、他の使用可能な集計を表示できます。

使用可能なオプションは次のとおりです。
- 集計しない
- カウント (すべて)
- カウント (空白なし)
- 最小値
- 最大値
- 中央値
- 合計
- 平均
集計できない列のピボット
集計できない列を使用している場合や、実行しようとしている操作に集計が必要ない場合は、集計せずに列をピボットできます。 たとえば、Country、Position、Product をフィールドとして持つ次の図のようなテーブルを考えます。
Country 列の最初の 3 行に USA、次の 3 行に Canada、最後の 3 行に Panama が含まれているテーブル。 Position 列には、行 1、4、7 に 1st Place、行 2、5、8 に 2nd Place、行 3、6、9 に 3rd Place が含まれています。
たとえば、このテーブルの Position 列をピボットして、その値を新しい列として設定するとします。 これらの新しい列の値には、Product 列の値を使用します。 Position 列を選択し、 [列のピボット] を選択して列をピボットします。
![]()
[列のピボット] ダイアログ ボックスで、値列として Product 列を選択します。 [列のピボット] ダイアログ ボックスで、 [高度] オプション ボタンを選択してから、 [集計しない] を選択します。
![[値の集計関数] が [集計しない] に設定されている [列のピボット] ダイアログ ボックス [値の集計関数] が [集計しない] に設定されている [列のピボット] ダイアログ ボックス。](images/me-pivot-columns-no-aggregation.png)
この操作では、次の図に示されているような結果が生成されます。
Country、1st Place、2nd Place、3rd Place の各列を含むテーブル。Country 列には、行 1 に Canada、行 2 に Panama、行 3 に USA が含まれています。
[集計しない] オプションを使用する場合のエラー
[集計しない] オプションの動作では、ピボット操作によって 1 つの値が取得され、列と行のペアの交差部分の値として配置されます。 たとえば、次の図のようなテーブルがあるとします。
Country、Date、Value の各列を含むテーブル。 Country 列には、最初の 3 行に USA、次の 3 行に Canada、最後の 3 行に Panama が含まれています。 Date 列には、すべての行に 2020 年 6 月 1 日の日付が含まれています。 Value 列には、20 から 785 の間のさまざまな整数が含まれています。
Date 列を使用してそのテーブルをピボットし、Value 列の値を使用する必要があります。 このピボットにより、テーブルでは行に Country の値、列として Date が含まれますが、Country と Date の組み合わせごとに複数の行が存在するため、セル値ごとにエラーが発生します。 [列のピボット] 操作では、次の図に示されているような結果が生成されます。
Country と 6/1/2020 の列を含むテーブルが表示されている Power Query エディター ウィンドウ。 Country 列には、行 1 に Canada、行 2 に Panama、行 3 に USA が含まれています。 6/1/2020 列のすべての行にエラーが含まれています。 テーブルの下には別のペインがあり、"列挙内の要素が多すぎるため、操作を完了できません" というメッセージと共に式エラーが表示されています。
"Expression.Error: 列挙内の要素が多すぎるため、操作を完了できませんでした" というエラー メッセージに注意してください。 このエラーは、 [集計しない] 操作では、国と日付の組み合わせに対して 1 つの値のみを想定しているために発生します。