2017-01-27 5 views
2

J'ai une requête de puissance Excel (également ajoutée à la table de données powerpivot) avec deux champs: Location et OpenedTime. colonne Emplacement a beaucoup de doublons comme dans cet exemple:Comment calculer la différence dans le temps à partir de la même colonne groupée par une autre colonne?

Location  OpenedTime 
LOC_1  9/25/2016 1:48:56 AM 
LOC_2  9/30/2016 2:01:00 PM 
LOC_1  10/10/2016 12:08:00 PM 
LOC_3  9/17/2016 9:35:43 PM 
LOC_1  10/15/2016 11:14:21 AM 
LOC_2  10/16/2016 8:27:34 PM 
LOC_3  10/18/2016 11:52:27 AM 
LOC_2  10/22/2016 9:09:00 AM 

Ce que je cherche est un moyen de calculer la différence de temps libre pour les 3 endroits. Ainsi, une nouvelle colonne affichera la différence entre 10/10/2016 12:08:00 PM et 9/25/2016 1:48:56 AM pour LOC_1.

Comme il existe plusieurs horodatages pour calculer les différences, je pensais s'il serait possible d'en moyenne toutes les différences en une seule différence moyenne pour chaque LOC

Merci !!

+0

Il est possible d'utiliser DAX. La logique serait, comparez chaque horodatage au précédent pour obtenir la différence, puis additionnez ces différences en secondes et obtenez la moyenne. Est-ce que c'est bon pour vous? Essayez-le si vous êtes bloqué, je posterai une réponse. –

+0

Je pensais à la même logique mais je ne peux pas comprendre comment dire à Excel pour calculer spécifiquement les différences de temps à partir du même endroit. Je pense qu'un moyen possible serait d'utiliser la formule if et match? –

+0

Connaissez-vous DAX dans PowerPivot? Je peux penser dans une expression DAX pour faire ce que vous avez besoin, mais je ne peux pas vous dire comment le faire en utilisant des formules Excel. –

Répondre

0

C'est quelque chose que vous pouvez faire pour obtenir le résultat souhaité:

Ajouter une nouvelle colonne à votre table PowerPivot en utilisant cette expression DAX:

Previous Date= 
CALCULATE (
    MAX ([OpenedTime]), 
    FILTER (
     TableName, 
     EARLIER (TableName[OpenedTime]) > [OpenedTime] 
      && EARLIER (TableName[Location]) = [Location] 
    ) 
) 

Cette expression obtenir la date précédente contre vous devez calculer la différence pour chaque ligne, notez que s'il n'y a pas de date précédente, elle l'a laissée BLANCHE.

Puis ajouter une deuxième colonne calculée à votre table de PowerPivot pour calculer la différence de Minutes:

Diff (Min)=DATEDIFF([Previous Date],[OpenedTime],MINUTE) 

Si vous voulez calculer la différence de hourse remplacer juste MINUTE par heure ou par jour ou SECONDES, etc.

Il vous donnera une colonne à la différence, alors vous pouvez simplement calculer la moyenne facilement en créant une mesure:

Avg OpenedTime (Min) := AVERAGE(TablaName[Diff (Min)]) 

Faites-moi savoir si cela aide.