2 votes

Utiliser GETPIVOTDATA pour les données groupées

J'ai un tableau croisé dynamique dont les lignes sont des valeurs provenant d'un champ appelé ID qui est un nombre, deux colonnes : Light et Humidity et un ensemble de valeurs Temp . Je veux trouver la valeur maximale pour Temp sur un groupe d'identifiants. J'ai regroupé les ID de 1 à 100, ce qui englobe tous les ID du tableau croisé dynamique, ce qui me laisse un tableau croisé dynamique avec une seule ligne de données. Dans chaque colonne, j'ai maintenant le maximum Temp à une valeur donnée Light et Humidity valeur. Tout se passe bien, jusqu'à ce que j'essaie d'utiliser ces valeurs maximales.

J'essaie d'utiliser une fonction comme suit :

=GETPIVOTDATA("Temp", Controls!$A$15, "Light", 50, "Humidity", 10)

Ainsi que :

=GETPIVOTDATA("Temp", Controls!$A$15, "Light", 50, "Humidity", 10, "ID", "1-100")

Mais cela donne un #REF erreur.

Avant de regrouper les ID en un seul groupe, je pouvais utiliser une fonction comme :

=GETPIVOTDATA("Temp", Controls!$A$15, "Light", 50, "Humidity", 10, "ID", 1)

Et cela renverrait correctement la valeur "Temp" pour ID 1 où les valeurs des colonnes correspondent à celles données dans la fonction.

Comment puis-je modifier cette requête pour réussir à obtenir la valeur par un regroupement de chiffres ?

1voto

databyte Points 708

Dans mon test, il semble que le premier numéro du groupe puisse être utilisé dans la formule GetPivotTable, donc si le groupe commence par 4 cette formule donnera le bon résultat :

=GETPIVOTDATA("temp",$H$3,"light",50,"humidity",10,"id",4)

Comme alternative, vous pouvez ajouter une colonne d'aide à vos données source et utiliser une formule qui renvoie le groupe pour chaque ID respectif.

Dans la capture d'écran, le tableau croisé dynamique supérieur utilise la fonctionnalité "Group" et il n'est pas possible d'obtenir un GetPivotData de celui-ci. Le tableau croisé dynamique inférieur, cependant, utilise le même regroupement, qui est réalisé par la formule d'aide dans la colonne F.

="group "&CEILING([@id]/3,1)

Cela permet à une seule valeur de couvrir le groupe et cette valeur unique peut être utilisée dans GetPivotData.

=GETPIVOTDATA("temp",$H$10,"light",50,"humidity",10,"group","group 2")

enter image description here

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X