Différence entre le dernier et le premier élément d'un critère dans une list

J'ai la feuille de calcul Excel suivante

ABCD 1 Product ID Time of Event 2 27152 01.04.2017 08:45:00 27152 70 Min. 3 27152 01.04.2017 09:00:00 29297 108 Min. 4 27152 01.04.2017 09:55:00 28802 28 Min. 5 29297 02.04.2017 11:02:00 6 29297 02.04.2017 12:50:00 7 28802 18.04.2017 11:48:00 8 28802 18.04.2017 12:00:00 9 28802 18.04.2017 12:13:00 10 28802 18.04.2017 12:16:00 

Dans la colonne A, vous pouvez find différents ID de produit. Dans la colonne B, le moment où un événement se produit dans l'ID du produit. Chaque événement est répertorié dans le tableau; Par conséquent, un ProductID peut apparaître plusieurs fois dans la colonne A.

Dans la colonne D, je souhaite montrer maintenant la différence de minutes entre le premier et le dernier événement qui se produit dans un identifiant de produit.

 D2 = 9:55:00 - 8:45:00 = 70 Min. D3 = 12:50:00 - 11:02:00 = 108 Min. D4 = 12:16:00 - 11:48:00 = 28 Min. 

Par conséquent, j'aurais besoin de quelque chose comme une DIFFERENCE-IF-Formula . Une de mes idées allait jusqu'à maintenant par la fonction LARGE et SMALL.

 =LARGE(B2:B4;1)-SMALL(B2:B4;1) 

Cependant, de cette façon, je devais find chaque tableau (B2: B4, B5: B6, B7: B10) séparément; Par conséquent, je préférerais que l'ID produit soit un critère dans la formule.

Résumés: Avez-vous une idée de la façon dont je pouvais calculer la différence en minutes entre le dernier et le premier événement d'un certain ProdcutID dans la list?

Je préférerais éviter tout type de formule de tableau.

=ROUND(MMULT(AGGREGATE({14,15},6,B$2:B$10/(A$2:A$10=C2),1),{1;-1})*1440,1)&" Min"

et copié.

J'ai l'printing que les séparateurs pour les arrays horizontaux et verticaux dans les versions allemandes d'Excel sont la période (.) Et le point-virgule (;) respectivement, donc je crois que vous aurez besoin:

=RUNDEN(MMULT(AGGREGAT({14.15};6;B$2:B$10/(A$2:A$10=C2);1);{1;-1})*1440;1)&" Min"

bien que s'il vous plaît laissez-moi savoir si cela ne donne pas les résultats requirejs.

Cordialement

Avec certaines conditions, 1. en supposant que vous convertissez la colonne B en 2 colonnes 2. les time sont en ordre croissant

  ABC Product ID Time of Event TIMES 27152 01.04.2017 8:45:00 27152 01.04.2017 9:00:00 27152 01.04.2017 9:55:00 29297 02.04.2017 11:02:00 29297 02.04.2017 12:50:00 28802 18.04.2017 11:48:00 28802 18.04.2017 12:00:00 28802 18.04.2017 12:13:00 28802 18.04.2017 12:16:00 

Cela fonctionnera sans utiliser le tableau

 =(INDEX($C$2:$C$10,SUMPRODUCT(MAX(ROW($A$2:$A$10)*(D2=$A$2:$A$10))-1))-INDEX($C$2:$C$10,MATCH(D2,$A$2:$A$10,0)))*1440 

Convertir le time en minutes

 =(time*1440) 

Rechercher la première valeur correspondante

 =INDEX($C$2:$C$10,MATCH(D2,$A$2:$A$10,0)) 

Rechercher la dernière valeur de correspondance

 =INDEX($C$2:$C$10,SUMPRODUCT(MAX(ROW($A$2:$A$10)*(D2=$A$2:$A$10))-1) 

NOTE Si la dernière valeur est SMALLER, la première valeur, vous recevrez une erreur.