ピボットテーブルを2列で並べ替えたい。しばらくWebを検索しましたが、Excelではこれが許可されていないようです。そのため、回避策が必要です。
私のデータ
望ましい結果
これを顧客ごとに要約し、注文数、次に注文の合計値でソートしたいので、これは私が期待しているテーブルのモックアップです:
ピボットテーブルを使用した実際の結果
これが実際のピボットテーブルです。注文数で並べ替えると、値列の順序が間違っています。値で並べ替えると、カウントの順序が間違っています。ピボットテーブルのセカンダリ列で等しい値を並べ替えるという概念はありません。
質問
Excelピボットテーブルを複数の列で並べ替える方法を教えてください。
注:行ラベルのセットが2つある場合、ピボットテーブルを複数の列で並べ替えることができます ここで示したように 。しかし、この場合、さまざまな理由により、1セットの行ラベルのみが必要です。
計算フィールドを使用します
これを実現するために見つけた最良の方法は、正しい並べ替え順序を生成する計算フィールドをテーブルに追加し、その列を非表示にすることです。
ソート順フィールドは、各ソート列を拡大または縮小して、出力ソート値の列のビットが他の値と重複しないようにする必要があります。
したがって、私はOrderCountを大きな数値でスケールアップし、合計値を大きな数値でスケールダウンします。
= (OrderCount*1000) + (Value/1000)
上記のJemaineの図の場合、これは3000.18
の値を生成します。ブレットは3000.07
、マレー/ブライアン1000.09
など-正しい順序になります。
3番目の並べ替え条件を追加したい場合は、さらに大きな数でそれを縮小する必要があります。
= (OrderCount*1000) + (Value/1000) + (3rdCondition/1000000)
計算フィールドの追加
これを実際にピボットテーブルに実装するには、計算フィールドが注文をカウントできるように、データテーブルに列を追加する必要があります。単にOrderCount
列を追加し、すべての行の値を1
に設定しました。
これで、計算フィールドを追加できます。リボンからこのオプションを選択し、式を入力します。
これで、ピボットテーブルは次のようになり、正しく並べ替えられました。
片付け中
このSortOrder列は他のユーザーを混乱させる可能性があるため、列全体を非表示にできます。
ただし、私はしばしば列を非表示にしない方が(個人設定)、この列を目立たなくするために、列の名前を(つまり、空白スペース)に変更し、SortOrder値の数値列を"";"";""
のカスタム形式にフォーマットできます。 Excelが列幅を自動調整する場合、これにより列がほとんど目立たなくなります。