web-dev-qa-db-fra.com

Formule de calcul calculée: SUM (Field1)/AVG (Field2)

J'ai un tableau simple avec une quantité et un intervalle en seconde par date et par nom de produit.

Month | Product | Amount | Interval in sec
------------------------------------------
05-'12| Prod A  | 10     | 5
05-'12| Prod A  | 3      | 5
05-'12| Prod B  | 4      | 5
05-'12| Prod C  | 13     | 5
05-'12| Prod C  | 5      | 5

De ce tableau, j'ai dérivé un tableau croisé dynamique avec SOMME (montant), MOYENNE (intervalle en secondes) par mois et par produit.

Month | Product | SUM of Amount | AVG of Interval in sec
--------------------------------------------------------
05-'12| Prod A  | 13            | 5
05-'12| Prod B  | 4             | 5
05-'12| Prod C  | 18            | 5

Jusqu'ici tout va bien. Maintenant, je veux ajouter une colonne supplémentaire à mon tableau croisé dynamique avec me donne le résultat de la somme du montant/AVG de l'intervalle en sec.

Ajouter une valeur calculée =SUM(Amount)/AVERAGE(Interval) ne me donne pas les bonnes valeurs. Excel me donne:

Month | Product | SUM of Amount | AVG of Interval in sec | Amount per sec
-------------------------------------------------------------------------
05-'12| Prod A  | 13            | 5                      | 1.3
05-'12| Prod B  | 4             | 5                      | 0.8
05-'12| Prod C  | 18            | 5                      | 1.8

Ce qu'il fait réellement est = SOMME (montant)/SOMME (intervalle en secondes) pour chaque mois et produit en fonction des valeurs du premier tableau. Mais je cherche:

Month | Product | SUM of Amount | AVG of Interval in sec | Amount per sec
-------------------------------------------------------------------------
05-'12| Prod A  | 13            | 5                      | 2.6
05-'12| Prod B  | 4             | 5                      | 0.8
05-'12| Prod C  | 18            | 5                      | 3.6

Divisez donc littéralement le champ de pivot 'Somme de quantité' par le champ de pivot 'AVG d'intervalle en secondes'.

Comment y parvenir?

11
Creep

Vous devez vous référer aux données du tableau croisé dynamique de votre formule, par exemple:

=GETPIVOTDATA("Sum of Amount",$A$3,"Product","A")/GETPIVOTDATA("Average of Interval",$A$3,"Product","A")

Edit: Depuis votre feuille de calcul: pour ajouter la colonne souhaitée au tableau croisé dynamique A:

K5=GETPIVOTDATA("Sum of Amount",$H$2,"Month",DATE(2012,5,1),"Product","Prod A")/GETPIVOTDATA("Average of Interval",$H$2,"Month",DATE(2012,5,1),"Product","Prod A")
K6=GETPIVOTDATA("Sum of Amount",$H$2,"Month",DATE(2012,5,1),"Product","Prod B")/GETPIVOTDATA("Average of Interval",$H$2,"Month",DATE(2012,5,1),"Product","Prod B")
K7=GETPIVOTDATA("Sum of Amount",$H$2,"Month",DATE(2012,5,1),"Product","Prod C")/GETPIVOTDATA("Average of Interval",$H$2,"Month",DATE(2012,5,1),"Product","Prod C")

Vous pouvez également produire la colonne en ajoutant une colonne supplémentaire au tableau de données d'origine de: Amount/Sec pour chaque entrée individuelle, puis lorsque vous faites pivoter toutes les données, le produit de cette colonne sera le résultat souhaité.

Edit (2):

Les formules ci-dessus sont des formules de cellules et non des formules de tableaux croisés dynamiques qui ne peuvent pas utiliser de références. Je suis à la recherche d'une formule de calcul de tableau croisé dynamique, mais pour le moment, la colonne ci-dessus, située à côté de votre tableau croisé dynamique, devrait fournir ce dont vous avez besoin.

4
Alistair Weir

créer un champ dans la source (compteur) et mettre "1" dans chaque ligne. mettez-le également dans le pivot et divisez la somme des secondes avec ce champ - alors ce sera une moyenne. diviser le champ d'origine avec cette moyenne de sorte que votre division finale-finale sera le montant par somme de secondes par compteur et que cela fera l'affaire :)

0
Viktor Lippai