2016-07-26 6 views
0

Je mesure l'utilisation de la pièce (temps utilisé/temps disponible) à partir d'un vidage de données. Chaque ligne contient l'heure disponible pour le jour et l'heure utilisée pour un cas particulier. L'image est une version simplifiée des données.Somme des moyennes dans le tableau Excel Pivot

Si vous lisez les faits saillants jaune et vert (Chambre 1):

  • dans la chambre 1, il y a 200 minutes disponibles sur 01.01.2016.
  • Le cas 1 a pris 60 minutes, le cas 2 a duré 50 minutes.
  • Il y a 500 minutes disponibles le 1/2/2016, et un seul cas s'est produit ce jour-là, en utilisant 350 minutes.

Room 1 utilization = (60 + 50 + 350)/(200 + 500)

Le problème avec la somme du temps disponible est qu'il double compte 200 minutes pour 01.01.2016, donnant: Utilization = (60+50+350)/(200+200+500)

Il y a des centaines de lignes dans ces données (et il y aura plusieurs vidages de données de différents # de rangs) avec plusieurs cas se produisant chaque jour. J'essaie d'utiliser un tableau croisé dynamique, mais je ne peux pas obtenir la «somme des moyennes» pour une pièce particulière (voir l'image). J'utilise une macro pour extraire les chiffres de la colonne du total général.

Est-ce possible? Voyez-vous un autre moyen d'obtenir l'utilisation? (note: il y a beaucoup d'autres colonnes dans les données, comme début de cas, à la fin de cas, jour de la semaine, etc., qui ne sont pas utilisés dans ce calcul, mais sont disponibles)

Sum of Averages in Pivot Table

Répondre

1

La raison pour laquelle vous obtenez 300 pour les deux colonnes Moyenne de temps disponible parce que le total général est un total général basé sur la moyenne globale et non sur la somme des moyennes.

  • Chambre 1: 200 + 200 + 500/3 = 300
  • Chambre 2: 300 + 300 + 300/3 = 300

Je ne pouvais pas commenter la question initiale , donc ma solution est basée sur quelques hypothèses.

Hypothèse 1: Les données seront toujours groupées. PAR EXEMPLE. Tous les cas dans la salle 1 un jour donné seront regroupés en rangées séquentielles. Hypothèse n ° 2: La colonne d'heure disponible est une valeur unique pour toute la journée, il n'y aura jamais d'heures disponibles différentes le même jour.


Solution: Utiliser la colonne E comme temps réel disponible. Cette colonne utilisera une formule pour déterminer si la ligne actuelle a une combinaison unique (Date + Salle + Heure disponible) à la précédente et si oui, la cellule contiendra l'heure disponible de cette ligne.

Formule à utiliser dans E2:

=IF(AND($A1 = $A2, $B1 = $B2, $C1 = $C2), 0, $C2) 

Prolonger la formule aussi loin que nécessaire et ensuite inclure la nouvelle colonne dans votre gamme de données de tableau croisé dynamique.


End Result

+0

Nous avons trouvé une solution similaire ici: Nous avons trié les données par pièce, puis par date. La colonne supplémentaire et if instruction vérifie les dates identiques, puis crée un espace vide s'il existe des 'heures disponibles' qui ne doivent pas être comptées. Au fait, vous aviez raison dans vos hypothèses, et peut-être pourrez-vous faire des commentaires après avoir accepté la réponse! – henrythedj

+0

Nous regardons seulement la date dans l'instruction if, donc la formule pourrait techniquement être cassée si nous avions seulement un jour de données d'une pièce dans un mois, et si la pièce suivante fonctionnait ce jour-là. Derniers mots célèbres: Cela ne devrait jamais arriver. Peut-être que nous allons construire dans le fail-safe: P – henrythedj

+1

@ Henry Harding McCall Je ne pouvais pas commenter parce que je n'avais pas de réputation. C'est bon de vous entendre avoir une solution similaire. En ce qui concerne l'échec sûr, personnellement, je l'inclurais, mais c'est juste moi et ma tendance à être trop prudent. –

0

Je crée une référence unique en combinant colonnes puis utilisé sumif/countif/countif.

Ainsi, la formule dans la colonne E serait: = sumif (colB, CellB, colC)/Countif (colB, Cellé)/Countif (colB, Cellé)

Peu importe si les données sont dans commande ou pas alors.

Étendez la formule aussi loin que nécessaire, puis incluez la nouvelle colonne dans votre plage de données de tableau croisé dynamique.