web-dev-qa-db-fra.com

Utiliser la formule dans le champ calculé personnalisé du tableau croisé dynamique

Dans le rapport de tableau croisé dynamique Excel, il est possible que l'utilisateur intervienne en insérant un "champ calculé" afin que l'utilisateur puisse manipuler davantage le rapport. Cela semble être la meilleure approche par rapport à l'utilisation d'une formule sur des données de tableau croisé dynamique, en dehors du tableau croisé dynamique, pour de nombreuses raisons évidentes.

Le dialogue "Champ calculé" ressemble à ceci:

enter image description here

et bien qu'il soit facile de calculer entre les variables disponibles (comme illustré dans la capture d'écran), je ne trouve pas comment référencer une plage de valeurs pour l'une des variables disponibles. 

Par exemple, si, pour une raison quelconque, je veux centrer les données dans la plage A1:A100, j'utiliserais = A1 - AVERAGE(A1:A100) et remplirais toutes les lignes du tableau Excel normal. Mais pour le tableau croisé dynamique, si j'utilise le dialogue "Champ calculé" et que j'ajoute une nouvelle variable avec la formule: = 'Actual Sales' - AVERAGE('Actual Sales'), je reçois 0 en sortie. 

Ma question est donc la suivante: comment référencer toute la plage de la variable "Ventes réelles" dans la boîte de dialogue "Champ calculé", afin que AVERAGE() renvoie la moyenne de toutes les cellules ciblées?

10
theta

Je posterai ce commentaire en guise de réponse, car je suis suffisamment convaincu que ce que j'ai demandé n'est pas possible.

I) Quelques questions similaires essayant de faire la même chose, sans succès: 

II) Cet article: Champ calculé du tableau croisé dynamique , par exemple, répertorie de nombreuses restrictions relatives au champ calculé:

  • Pour les champs calculés, les montants individuels dans les autres champs sont additionnés, puis le calcul est effectué sur le montant total.
  • Les formules de champ calculées ne peuvent pas faire référence aux totaux ou sous-totaux du tableau croisé dynamique
  • Les formules de champs calculés ne peuvent faire référence à des cellules de feuille de calcul par adresse ou par nom.
  • La somme est la seule fonction disponible pour un champ calculé.
  • Les champs calculés ne sont pas disponibles dans un tableau croisé dynamique basé sur OLAP.

III) La possibilité d'utilisation de AVERAGE() et d'une fonction similaire pour une plage de cellules est très limitée, mais cela ne s'applique que si le tableau croisé dynamique n'a pas de cellules groupées, ce qui permet de répertorier les cellules en tant qu'éléments du nouveau groupe (à droite de la liste "Fileds" dans la capture d’écran ci-dessus), puis l’utilisateur peut calculer AVERAGE(), en référençant explicitement chaque élément (cellule), à ​​partir de la liste des éléments, en tant qu’argument. C’est peut-être mieux expliqué ici: Calculer les valeurs dans un rapport de tableau croisé dynamique
Pour mon tableau croisé dynamique, cela n’était pas applicable car ma plage n’était pas assez petite, cette option étant un choix sensé. 

14
theta

Certaines sont possibles, en particulier pour accéder à des sous-totaux:

"Dans Excel 2010+, vous pouvez cliquer avec le bouton droit sur les valeurs et sélectionner Afficher les valeurs en tant que ->% du total de la ligne parent." (ou% du total de la colonne parent)

enter image description here

  • Et assurez-vous que le champ en question est un champ de nombres pouvant être additionné. Il ne fonctionne pas pour les champs de texte pour lesquels seul le nombre est informatif. 

Source: http://datapigtechnologies.com/blog/index.php/Excel-2010-pivottable-subtotals/

3
Cel

Merci d'avoir planté une graine, Cel! Cela fait des heures que je me bats avec ça, enfin je l’ai. Je comptais un champ de texte, oups, le calcul a échoué. 

Création de 2 colonnes d'assistance dans mes données brutes, chacune ayant pour résultat 1 si la condition est remplie, 0 sinon. Ensuite, tirés chacun dans une colonne pivot, les miens sont appelés "Inbd" (pour Inbound), "Back", où "Back" est un retour à l'établissement d'envoi. En réalité, le total est un voyage et non 2 back est un sous-ensemble d'entrant et chaque inbd n'a pas de retour (évidemment). Essayer de calculer dans le tableau croisé dynamique afin que je puisse trier sur le champ le taux de retour en entrée pour chaque installation d'envoi.

Pour mon champ calculé, j’ai utilisé: =IFERROR(IF(Pvt_Back>0,Pvt_Back/Pvt_Inbd,0),0)So: si nous renvoyons un nombre de fois supérieur à 0, divisez Back/Inbd pour obtenir un taux; si égal à 0, alors 0; si Inbd = 0, alors 0 pour éviter une erreur Div/0.

Merci encore!! :)

1
Kim

Tableau croisé dynamique Excel2007- Moyenne pour exclure les zéros

= somme (XX: XX)/compte si (XX: XX, "> 0")

Facture USD

Qté Débit (décompte) Valeur (somme)

Le taux moyen doit exclure le taux de 0,000

0
Rajendra