Заранее спасибо за любую помощь в этой ситуации.
У меня есть таблица Excel, которая содержит необработанные данные из системы учета рабочего времени. Эти данные содержат следующие столбцы:
A: Date/Time of Entry
B: Purpose of Entry (Either Clock IN or Clock OUT)
C: Unique ID of employee clocking in or out
Для каждого прихода, связанного с уникальным идентификатором, ДОЛЖЕН быть уход в тот же день для этого уникального идентификатора. Мне нужно извлечь все записи, у которых нет ухода, связанного с приходом в этот день.
решение1
Грубый код.
Получить количество строк (называется intROWEND)
for intCOUNTER = 1 to intROWEND - 1 do
get date for row(intCOUNTER)
get UNIQUEID for row(intCOUNTER)
booleanCLOCKEDOUT = False
for intCOUNTER2 = intCOUNTER + 1 to intROWEND
if (date(row(intCOUNTER) = date(row(intCOUNTER2)) and (UNIQUEID(intCOUNTER) = (UNIQUEID(intCOUNTER2)) then booleanCLOCKEDOUT = True
next
if booleanCLOCKEDOUT = False then output date and UNIQUEID
next
решение2
Эта формула массива подсчитывает количество OUT для одного и того же сотрудника в один и тот же день для каждого IN. Введите как формулу массива, подтвердив с помощью ctrl+shift+enter.
=IF(B1="IN",SUM(IF(INT(A$1:A$6)=INT(A1),IF(B$1:B$6="OUT",IF(C$1:C$6=C1,1),0),0)),"")
Если вы видите время прихода с нулевым значением, это означает, что в тот же день нет связанных с ним времени ухода.