Excel — поместите время входа в систему в четкие часы

Excel — поместите время входа в систему в четкие часы

У меня есть эта информация в таблице Excel, которая показывает количество времени, проведенного за компьютером.

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

И я хочу превратить это в это..

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

Это кажется очень сложным, и я уже запутался в формулах Excel... Если кто-то знает формулу, было бы здорово!

решение1

Вот один из способов сделать это, не очень элегантный, возможно, у кого-то есть более короткий способ сделать это, и он придумает его, увидев этот уродливый, возможно, вот моя попытка, работает исключительно с MS365 Version Of Excel:

введите описание изображения здесь


• Формула, используемая в ячейкеE2

=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))))))

Тестовый случай 1:

введите описание изображения здесь


Тестовый случай 2:

введите описание изображения здесь


введите описание изображения здесь

Связанный контент