
Ich habe diese Informationen in einer Excel-Tabelle, die die Zeit darstellt, die ich an einem Computer angemeldet verbracht habe.
logins time of day amount of time logged in (h:mm)
------ ----------- -------------------------------
login 03:21
logout 05:03 1:42
login 05:47
logout 06:26 0:39
Und ich möchte das hier daraus machen...
time of day amount of time logged in (mins)
------------- -------------------------------
03:00 - 04:00 39
04:00 - 05:00 60
05:00 - 06:00 16
06:00 - 07:00 26
Es scheint sehr kompliziert zu sein und ich komme mit den Excel-Formeln nicht mehr klar. Wenn jemand eine Formel kennt, wäre das großartig!
Antwort1
Hier ist eine Möglichkeit, dies zu tun. Sie ist nicht sehr elegant. Vielleicht hat jemand eine kürzere Methode, dies zu tun, und wird darauf kommen, nachdem er diese hässliche gesehen hat. Hier ist vielleicht mein Versuch, der ausschließlich mit folgendem funktioniert MS365 Version Of Excel
:
• In der Zelle verwendete FormelE2
=LET(
_Data, A2:B5,
_First, TAKE(_Data,1,-1),
_Adjustments, IF(TAKE(_Data,1,1)="Logout",
VSTACK(_First,MROUND(_First,"1:00"),DROP(_Data,1,1)),
DROP(_Data,,1)),
_H2M, 1440,
_TFormat, "hh:mm",
_TimeFrame, WRAPROWS(UNIQUE(_Adjustments,,1),2,CEILING(MAX(_Adjustments),"1:00:00"))*_H2M,
_TSequence, TOCOL(DROP(REDUCE("",SEQUENCE(ROWS(_TimeFrame)),LAMBDA(_x,_y,
LET(_z,INDEX(_TimeFrame,_y,1),_w,INDEX(_TimeFrame,_y,2),
VSTACK(_x,SEQUENCE(,_w-_z,_z))))),1)/_H2M,2),
_Uniq, UNIQUE(HOUR(_TSequence))/24,
HSTACK(TEXT(_Uniq,_TFormat)&" - "&TEXT(_Uniq+1/24,_TFormat),
TOCOL(BYCOL(LOOKUP(_TSequence,_Uniq)*24=TOROW(_Uniq*24),LAMBDA(_b,SUM(--_b))))))
Testfall 1:
Testfall 2: