J'ai un grand tableau de données dans une feuille de calcul Excel qui, essentiellement, peut être considéré comme une collection de valeurs pour les individus identifiés comme appartenant à diverses sous-populations:
IndivID SubPopID Value
1 A 33.56
2 E 42.31
3 D 16.35
4 A 50.59
5 F 80.63
...
Il y a plus de 10 000 individus dans ce tableau et plus de 50 sous-populations.
Je voudrais calculer le résumé à 5 chiffres (Min, Q1, Médiane, Q3, Max) pour chacune des sous-populations.
Min et Max sont faciles dans un tableau croisé dynamique. Mais Q1, Q2 (médiane) et Q3 ne semblent pas possibles.
Question
Existe-t-il un moyen de calculer les quartiles pour chaque sous-population dans un tableau croisé dynamique dans Excel?
La réponse devrait ressembler à ceci:
SubPopID Min Q1 Q2 Q3 Max
A 3.23 12.06 20.35 28.29 50.59
B
C
...
D'après mon expérience, vous ne pouvez pas faire de centiles dans un tableau croisé dynamique. Je viens de faire une recherche sur le Web et je ne vois rien qui puisse contredire cela. Je pense que le mieux que vous puissiez faire est d'avoir vos données source dans un tableau afin que vous puissiez vous y référer de manière dynamique, puis utiliser la fonction centile dans un autre tableau.
J'ai vu n article sur l'utilisation de PowerPivot, mais cela n'est disponible que dans Excel 2010, et cela semble difficile. J'ai 2010, et face à un problème similaire, j'ai quand même choisi de suivre la voie que je propose ici.
[~ # ~] modifier [~ # ~] : Explication de mon alternative proposée:
En réponse à votre question dans les commentaires, voici comment je calculerais les centiles à partir d'un tableau de données:
Il repose sur une seule formule, qui est la même pour chaque cellule de F2 à H6. C'est un formule de tablea , ce qui signifie qu'il est entré avec Ctrl-Shift-Enter
. Il utilise une instruction IF pour filtrer sur les différents SubPopID possibles. Voici la formule pour F2:
=PERCENTILE(IF(Table1[SubPopID]=F$1,Table1[Value],""),$E2/100)
Si vous devez vérifier une condition pour plusieurs colonnes (a = 1 ET b = 2), vous pouvez développer le tableau à l'aide du caractère *
=PERCENTILE((IF((Table1[SubPopID]=[condition1]) * (Table1[SubPopID2]=[condition2]),Table1[Value]),""),$E2/100)
J'ai trouvé ceci réponse où une solution est décrite.
Il utilise la même approche que celle décrite par Doug Glancy mais l'associe à un champ calculé dans le tableau croisé dynamique. La réponse donne un exemple de fichier Excel.