web-dev-qa-db-ja.com

マトリックスを3列のテーブルに変換(「逆ピボット」、「アンピボット」、「フラット化」、「正規化」)

テーブルFIRSTのExcelマトリックスLATERを変換する必要があります。

[〜#〜] first [〜#〜]

    P1  P2  P3  P4
F1  X
F2  X   X
F3      X       X
F4      X   X

[〜#〜] later [〜#〜]

F   P   VALUE
F1  P1  X
F1  P2
F1  P3
F1  P4
F2  P1  X
F2  P2  X
F2  P3
F2  P4
F3  P1
F3  P2  X
F3  P3
F3  P4  X
F4  P1
F4  P2  X
F4  P3  X
F4  P4
28
user3095042

「逆ピボット」、「アンピボット」、または「フラット化」するには:

  1. Excel 2003の場合:サマリーテーブルのセルをアクティブにし、[データ]-[ピボットテーブル]および[ピボットグラフレポート]を選択します。

    SO20541905 first example

それ以降のバージョンでは、Wizard Alt+D、 P

Excel for Mac 2011の場合、 +Alt+P ( こちらを参照 )。

  1. 複数の統合範囲を選択してクリック Next

    SO20541905 second example

  2. 「Step 2a of 3」で、を選択しますページフィールドを作成しますをクリックします Next

    SO20541905 third example

  3. [ステップ2b/3]で、Rangeフィールド(サンプルデータの場合はA1:E5)でサマリーテーブルの範囲を指定し、クリックします Add、その後 Next

    SO20541905 fourth example

  4. 「ステップ3/3」で、ピボットテーブルの場所を選択します(PTは一時的にのみ必要であるため、既存のシートを提供する必要があります)。

    SO20541905 fifth example

  5. クリック Finish ピボットテーブルを作成するには:

    SO20541905 sixth example

  6. 総計の交差部分(ここではセルV7または7):

    SO20541905 seventh example

  7. これで、PTが削除されます。

  8. 結果のテーブルは、クイックメニュー(テーブルを右クリック)でTableおよび範囲に変換

Launch Excel に同じテーマのビデオがありますが、これは素晴らしい品質だと思います。

51
pnuts

VBAを使用せずにデータのピボットを解除する別の方法は、Excel 2010以降用の無料のアドインであるPowerQueryを使用することです。ここでは、 http://www.Microsoft.com/en-us/download/details.aspx? id = 39379

Power Queryアドインをインストールしてアクティブ化します。次に、次の手順を実行します。

データソースに列ラベルを追加し、[挿入]> [テーブル]でExcelテーブルに変換するか、 Ctrl - T

enter image description here

テーブル内の任意のセルを選択し、Power Queryリボンで[テーブルから]をクリックします。

enter image description here

これにより、Power Query Editorウィンドウでテーブルが開きます。

enter image description here

最初の列の列ヘッダーをクリックして選択します。次に、Transformリボンで、Unpivot Columnsドロップダウンをクリックします他の列のピボットを解除します

他の列のピボット解除コマンドを持たないPower Queryのバージョンでは、最初の列を除くすべての列を選択します(Shiftキーを押しながら列ヘッダーをクリックします) )およびUnpivotコマンドを使用します。

enter image description here

結果はフラットなテーブルです。 [ホーム]リボンの[閉じると読み込み]をクリックすると、データが新しいExcelシートに読み込まれます。

enter image description here

さて、良い部分に。たとえば、ソーステーブルにデータを追加します。

enter image description here

Power Query結果テーブルのあるシートをクリックし、データリボンでRefresh allをクリックします。次のようなものが表示されます。

enter image description here

Power Queryは、1回限りの変換ではありません。繰り返し可能で、動的に変化するデータにリンクできます。

22
teylyn

これまでのすべてのソリューションには、VBA、PowerQueryなどが関係していますが、これらはすばらしいものですが、「一度限りの」イベントです。より動的にするには、INDEX(MATCH(...))の使用を検討してください。これにより、テーブルを動的に更新できます。

enter image description here

1
Matt