Проблема возникает из-за расхождений с плавающей запятой, когда вы используете заполнение линейных рядов Excel для автоматического заполнения времен в столбце H
по сравнению с временами, созданными с помощью TIME()
функции.
Это можно подтвердить, введя =H6-G3
в любую ячейку или выбрав H6
, затем нажав, F2а затем Enter. Обратите внимание, что хотя F2метод можно использовать для коррекции значений времени по одному, это не удобно для любого значительного числа ячеек.
Решение состоит в том, чтобы генерировать Continuous Time
значения по формуле.
Введите следующую формулу H3
и ctrl-enter / copy-paste / fill-down / auto-fill так далеко, насколько это необходимо, после конца H
столбца таблицы :
=IF(ISTEXT(H2),TIME(RIGHT(A3,2),0,0),TIME(HOUR(H2),MINUTE(H2)+1,0))
Обратите внимание, что значения времени можно оставить как есть или преобразовать в литеральные значения, скопировав и вставив их в качестве значений.
Как вы можете видеть, ваша формула индекса / соответствия в столбце I
теперь будет подбирать столбец «Пользователи из», C
когда в столбце существует подходящее время G
.
РЕДАКТИРОВАТЬ:
Хотя приведенная выше формула является «надежной» и позволяет вставлять / удалять строки над заголовком, не разбивая его, как указывал Скотт (особенно если копировать / вставлять как значения), существует более простая и менее надежная версия:
=TIME(RIGHT($A$3,2),ROW()-3,0)
Дальнейшее упрощение этого приводит к следующей простейшей формуле:
=TIME(0,ROW()-3,0)
Осталось только изменить формулу, чтобы генерировать нули, когда время отсутствует:
=IFERROR(INDEX($C$3:$C$954,MATCH(H3,$G$3:$G$954,0)),0)