web-dev-qa-db-fra.com

Impossible de trier le tableau croisé dynamique Excel en deux colonnes ou plus

Je souhaite trier mon tableau croisé dynamique en deux colonnes. J'ai cherché sur le Web pendant un certain temps, et il semble que Excel ne le permette pas. J'ai donc besoin d'une solution de contournement.

Mes données

data

Résultat souhaité

Je souhaite résumer ceci par client, trié par nombre de commandes, puis par la valeur totale des commandes. Il s’agit donc d’une maquette du tableau que je compte voir:

expected outcome

Résultats réels à l'aide de tableaux croisés dynamiques

Voici à quoi ressemble mon tableau croisé dynamique. Si je trie par nombre d'ordres, la colonne de valeur est dans le mauvais ordre. Si je trie par valeur, le compte est dans le mauvais ordre. Il n'y a pas de concept de tri des valeurs égales dans une colonne secondaire pour les tableaux croisés dynamiques.

pivot tables

Question

Comment trier les tableaux croisés dynamiques Excel en plusieurs colonnes?


Remarque: Je sais que vous pouvez trier les tableaux croisés croisés en plusieurs colonnes si vous avez deux jeux d'étiquettes de ligne, comme je l'ai montré ici . Mais dans ce cas, pour diverses raisons, je ne veux qu’un ensemble d’étiquettes de lignes.

4
Andi Mohr

Utilisez un champ calculé

Pour y parvenir, la meilleure solution consiste à ajouter à la table un champ calculé qui génère le bon ordre de tri, puis à masquer cette colonne.

Le champ d'ordre de tri doit fonctionner en redimensionnant chaque colonne de tri de manière à ce qu'aucun bit de colonne de la valeur de tri en sortie ne chevauche un autre.

Donc, je redimensionne OrderCount d’un grand nombre et la valeur totale d’un grand nombre:

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

Pour les chiffres de Jemaine ci-dessus, cela produira une valeur de 3000.18. Bret serait 3000.07, Murray/Brian 1000.09 etc - le bon ordre.

Si je voulais ajouter une troisième condition de tri, je devrais le réduire encore plus:

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

Ajout du champ calculé

Pour réellement implémenter cela dans le tableau croisé dynamique, je dois ajouter une colonne à ma table de données afin que le champ calculé puisse compter les commandes. J'ai simplement ajouté une colonne OrderCount et défini la valeur sur 1 pour chaque ligne:

order count

Nous pouvons maintenant ajouter le champ calculé. Sélectionnez cette option dans le ruban et entrez la formule:

add calc field

add formula

Mon tableau croisé dynamique ressemble maintenant à ceci, trié correctement.

correct outcome

Rangement

Cette colonne SortOrder peut dérouter les autres utilisateurs, je peux donc simplement masquer la colonne entière.

Cependant, je préfère souvent ne pas masquer les colonnes (préférence personnelle), donc pour rendre cette colonne discrète, je peux renommer la colonne en (c.-à-d. Un espace vide) et formater la colonne numérique pour les valeurs SortOrder en un format personnalisé de "";"";"". Si Excel ajuste automatiquement la largeur des colonnes, la colonne est à peine perceptible.

enter image description here

4
Andi Mohr