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
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:
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.
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.
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:
Nous pouvons maintenant ajouter le champ calculé. Sélectionnez cette option dans le ruban et entrez la formule:
Mon tableau croisé dynamique ressemble maintenant à ceci, trié correctement.
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.