web-dev-qa-db-ja.com

Excelピボットテーブルを2列以上で並べ替えることはできません

ピボットテーブルを2列で並べ替えたい。しばらくWebを検索しましたが、Excelではこれが許可されていないようです。そのため、回避策が必要です。

私のデータ

data

望ましい結果

これを顧客ごとに要約し、注文数、次に注文の合計値でソートしたいので、これは私が期待しているテーブルのモックアップです:

expected outcome

ピボットテーブルを使用した実際の結果

これが実際のピボットテーブルです。注文数で並べ替えると、値列の順序が間違っています。値で並べ替えると、カウントの順序が間違っています。ピボットテーブルのセカンダリ列で等しい値を並べ替えるという概念はありません。

pivot tables

質問

Excelピボットテーブルを複数の列で並べ替える方法を教えてください。


注:行ラベルのセットが2つある場合、ピボットテーブルを複数の列で並べ替えることができます ここで示したように 。しかし、この場合、さまざまな理由により、1セットの行ラベルのみが必要です。

4
Andi Mohr

計算フィールドを使用します

これを実現するために見つけた最良の方法は、正しい並べ替え順序を生成する計算フィールドをテーブルに追加し、その列を非表示にすることです。

ソート順フィールドは、各ソート列を拡大または縮小して、出力ソート値の列のビットが他の値と重複しないようにする必要があります。

したがって、私はOrderCountを大きな数値でスケールアップし、合計値を大きな数値でスケールダウンします。

= (OrderCount*1000) + (Value/1000) 

上記のJemaineの図の場合、これは3000.18の値を生成します。ブレットは3000.07、マレー/ブライアン1000.09など-正しい順序になります。

3番目の並べ替え条件を追加したい場合は、さらに大きな数でそれを縮小する必要があります。

= (OrderCount*1000) + (Value/1000) + (3rdCondition/1000000)

計算フィールドの追加

これを実際にピボットテーブルに実装するには、計算フィールドが注文をカウントできるように、データテーブルに列を追加する必要があります。単にOrderCount列を追加し、すべての行の値を1に設定しました。

order count

これで、計算フィールドを追加できます。リボンからこのオプションを選択し、式を入力します。

add calc field

add formula

これで、ピボットテーブルは次のようになり、正しく並べ替えられました。

correct outcome

片付け中

このSortOrder列は他のユーザーを混乱させる可能性があるため、列全体を非表示にできます。

ただし、私はしばしば列を非表示にしない方が(個人設定)、この列を目立たなくするために、列の名前を(つまり、空白スペース)に変更し、SortOrder値の数値列を"";"";""のカスタム形式にフォーマットできます。 Excelが列幅を自動調整する場合、これにより列がほとんど目立たなくなります。

enter image description here

5
Andi Mohr