Получить значение первой пары - PullRequest
0 голосов
/ 19 сентября 2018

У меня есть этот файл

Date      | Time         | Table  |      Checkin Time | Bill Number ..| .. |
7/1/2018   **18:03:48**   **6**         **18:03:48**       **4332**
7/1/2018   18:11:23       **6**         **18:03:48**       **4332**
7/1/2018   18:23:10       **6**         **18:03:48**       **4332**
7/1/2018   19:24:11         8             19:24:11           4333
7/1/2018   19:56:17         8             19:24:11           4333
7/1/2018   20:31:11        *6             20:31:11           4332*


Мне нужно рассчитать время проверки, которое является 1-м разом номера таблицы и номера счета.
Например, см. Одну проверку клиента в 18:03:48 с table number 6
Его Bill number равно 4332.
Так что для table number 6 и Bill number 4332 chekin time будет 1-м time
, что 18:03:48.
Итак, я применил формулу:

=IF(AND(E3=E2,C3=C2,A3=A2),D2,MIN(OFFSET(E3,0,-3,MATCH(0,(E3:E$35470=E3)*(C3:C$35470=C3)*(A3:A$35470=A3),0)-1,1)))

Но значение меняется на 6th row.
Это дает 20:31:11 как checkin time.
Это должно быть 18:03:48, потому что 6th row table number and bill number такое же, как 1-й.
Итак, как я могу сделать это, чтобы вычислить checkin time согласно 1st time, которые имеют одинаковые bill and table number, независимо от того, какая строка.
Вот файл Excel Я загрузил на диск Google.
Вот скриншот .

Редактировать: - Формула от @jeeped work, но так как журнал 30 дней
Данные повторяются и на другой день.
Можно ли это сделать, указав unique значение даты?

Ответы [ 3 ]

0 голосов
/ 19 сентября 2018

Вы можете использовать формулу массива, комбинирующую INDEX + MATCH, чтобы вернуть самое раннее значение времени, которое сначала соответствует вашим условиям.В ячейку D2 введите следующее:

=INDEX($B$2:$B$7,MATCH(1,($C$2:$C$7=C2)*($E$2:$E$7=E2),0))

При возврате обязательно нажимайте CONTROL+SHIFT+ENTER вместо просто ENTER, чтобы убедиться, что формула рассчитывается правильно.

0 голосов
/ 20 сентября 2018

@ Ответ Jeeped точен, здесь приведена корректировка для формулы, которая будет работать в течение нескольких дней с одинаковыми номерами таблицы и номерами счетов:

=AGGREGATE(15, 7, ((A$2:A$13)+(B$2:B$13))/((C$2:C$13=C2)*(E$2:E$13=E2)*(A$2:A$13=A2)), 1)

Все, что я сделал, это добавил этот дополнительный условный аргумент, который проверяет, совпадает ли «Дата»:

*(A$2:A$13=A2)

CheckInTime

0 голосов
/ 19 сентября 2018

Если у вас нет новых MINIFS и MAXIFS, используйте AGGREGATE для достижения того же результата.

=AGGREGATE(15, 7, ((A$2:A$7)+(B$2:B$7))/((C$2:C$7=C2)*(E$2:E$7=E2)), 1)

Отформатируйте результат так, как вы хотите;как дата и время, только время и т. д.

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...