次の方法で共有


列のピボット

Power Query では、列の一意の値ごとに集計値を含むテーブルを作成できます。 Power Query では、各一意の値がグループ化され、各値の集計計算が行われ、列が新しいテーブルにピボットされます。

ピボット列によってテーブルがどのように変更されるかを示す図。

空白の列と行を含む左側のテーブルを示す図。 [属性] 列には、A1、A2、A3 が 3 回繰り返された 9 行が含まれています。 [値] 列には、上から下の値 V1 から V9 までの値が含まれます。 列がピボットされると、右側のテーブルに空白の列と行が含まれます。 属性値 A1、A2、および A3 は列ヘッダーです。 A1 列には、V1、V4、V7 の値が含まれています。 A2 列には、V2、V5、V8 の値が含まれています。 最後に、V3、V6、V9 の値を含む A3 列。

次の図のようなテーブルを想像してみてください。

列のピボットに使用された元のテーブルのスクリーンショット。

テキスト データ型として設定された Country 列、データ型として設定された Date 列、整数データ型として設定された値列を含むテーブル。 Country 列には、最初の 3 行に USA、次の 3 行にカナダ、最後の 3 行にパナマが含まれます。 Date 列には、1 行目、4 行目、7 行目、2 行目、5 行目、8 行目に 2 番目の日付、3 行目、6 行目、9 行目の 3 番目の日付が含まれます。

このテーブルには、国別と日付別の値が単純なテーブルに含まれています。 この例では、次の図に示すように、このテーブルを日付列がピボットされるテーブルに変換します。

列をピボットして作成された最終的なテーブルのスクリーンショット。

[テキスト] データ型に設定された Country 列と、整数データ型として設定された 1 つ目、2 番目、3 番目の日付列を含むテーブル。 Country 列には、行 1 のカナダ、行 2 のパナマ、行 3 の USA が含まれます。

ピボット列の操作中、Power Query は、テーブルの左側にある最初の列にある値に基づいてテーブルを昇順で並べ替えます。

列をピボットするには

  1. ピボットする列を選択します。 この例では、[ 日付] 列を選択します。

  2. [任意の列] グループの [変換] タブで、[ピボット列] を選択します。

    [変換] タブが選択され、選択したテーブルの [日付] 列、[ピボット列] オプションが強調されているスクリーンショット。

  3. [ ピボット列 ] ダイアログ ボックスの [ 値] 列 の一覧で、[ ] を選択します。

    [基本] が選択され、[値] 列が [値] に設定されている [ピボット列] ダイアログのスクリーンショット。

    既定では、Power Query は集計として合計を実行しようとしますが、[詳細設定] オプションを選択すると、他の使用可能 集計を表示できます。

    [詳細設定] が選択され、[集計値関数] ドロップダウンが表示されている [ピボット列] ダイアログのスクリーンショット。

使用可能なオプションは次のとおりです。

  • 集計しない
  • カウント (すべて)
  • カウント (空欄を含まない)
  • 最小値
  • 最大値
  • 中央値
  • 合計
  • 平均

集計できないピボット列

集計できない列を操作している場合、または集計する必要がない場合は、集計せずに列をピボットできます。 たとえば、次の図のような、 CountryPositionProduct をフィールドとして持つテーブルがあるとします。

集計のないピボット列を示す最初のテーブルのスクリーンショット。

最初の 3 行に USA、次の 3 行にカナダ、最後の 3 行にパナマを含む Country 列を含むテーブル。 [位置] 列には、1 行目、4 行目、7 行目に 1 位、2 行目、5 行目、8 行目に 2 位、3 行目、6 行目、9 行目に 3 位が含まれます。

たとえば、このテーブルの Position 列をピボットして、その値を新しい列として使用できるようにするとします。 これらの新しい列の値には、 Product 列の値を使用します。 [位置] 列を選択し、[ピボット列] を選択してその列をピボットします。

[位置] 列が選択され、[変換] タブで [ピボット列] コマンドが強調されているテーブルのスクリーンショット。

[ ピボット列 ] ダイアログ ボックスで、値列として [製品 ] 列を選択します。 [ピボット列] ダイアログ ボックスで [詳細設定] オプション ボタンを選択し、[集計しない] を選択します。

集計値関数が [集計しない] に設定されている [ピボット列] ダイアログ ボックスのスクリーンショット。

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

ピボット列 結果を集計しません。

Country、First Place、Second Place、Third Place の各列を含むテーブル。Country 列には、行 1 にカナダ、行 2 にパナマ、行 3 に USA が含まれています。

[集計しない] オプションを使用するときのエラー

[集計しない] オプションが機能する方法は、ピボット操作が列と行のペアの交差部分の値として配置される単一の値を取得することです。 たとえば、次の図のようなテーブルがあるとします。

ピボット列を含む最初のテーブルのスクリーンショットでは、エラーの例が集計されません。

国、日付、および値の列を含むテーブル。 Country 列には、最初の 3 行に USA、次の 3 行にカナダ、最後の 3 行にパナマが含まれます。 [日付] 列には、すべての行に 1 つの日付が含まれています。 値列には、20 から 785 までのさまざまな整数が含まれています。

[日付] 列を使用してそのテーブルをピボットし、[] 列の値を使用します。 このピボットを使用すると、テーブルには行の Country 値だけが含まれるようにし、 日付 を列として使用するため、 と日付の組み合わせごとに複数の行があるため、1 つのセルの値ごとにエラーが発生 します。 この ピボット列 操作の結果は、次の図に示す結果になります。

[ピボット] 列のスクリーンショットでは、エラーの最終テーブルの例が集計されません。

"集計Expression.Error: There were too many elements in the enumeration to complete the operation." 操作では国と日付の組み合わせに対して 1 つの値のみが想定されるため、このエラーが発生エラー メッセージに注意してください。