MATCH может возвращать только один номер строки, но вам нужен массив всех совпадающих строк, чтобы вы могли выбрать наименьший / наибольший - вам нужна формула массива.
У вас есть несколько критериев, но AND и ИЛИ не работают в формулах массива, поэтому для имитации И и ИЛИ требуется хитрость:
AND(a=b,c=d)
и OR(a=b,c=d)
обрабатывают a=b
и c=d
как значения ИСТИНА / ЛОЖЬ, но это так же, как допустимо думать о них как ЛОЖЬ = 0 и ИСТИНА <> 0. Если вы сделаете это, то (a=b)*(c=d)
будет таким же, как использование AND, а (a=b)+(c=d)
будет таким же, как OR.
Для начала мы используем MIN, чтобы найти наименьший соответствующий элемент. Те, которые соответствуют, являются числами, показанными как даты. А как насчет тех, которые не соответствуют? Нам нужно число больше любой мыслимой даты. Число 2958465 - 31/12/9999 (самая большая дата), поэтому мы можем использовать что-то большее, чем это - мы будем использовать 9999999, который определенно не является действительной датой.
В конце мы используем MAX найти самый большой предмет, который соответствует. Те, которые соответствуют, являются числами, показанными как даты. Для тех, кто не соответствует, нам нужно число меньше любой мыслимой даты. Число 0 является наименьшей допустимой датой, поэтому мы будем использовать -1, что определенно не является допустимой датой.
Итак, формулы массива, которые нам нужно использовать:
Для идентификатора введите эту формулу в G2, а затем скопируйте результат вниз для каждой строки исходных данных:
=A2
Для даты начала поместите эту формулу в H2 и нажмите Control-Shift-Enter вместо просто Enter, а затем скопируйте результат вниз для каждой строки исходных данных:
=MIN(IF((D2>=B:B)*(D2<=C:C)*(A2=A:A)+(E2>=B:B)*(E2<=C:C)*(A2=A:A),D:D,9999999))
Для даты окончания, поместите эту формулу в I2 и нажмите Control-Shift-Enter вместо просто Enter, а затем скопируйте результат вниз для каждой строки Исходные данные:
=MAX(IF((D2>=B:B)*(D2<=C:C)*(A2=A:A)+(E2>=B:B)*(E2<=C:C)*(A2=A:A),E:E,-1))
Когда ячейка была введена как формула массива с помощью Control-Shift-Enter, Excel помещает фигурные скобки вокруг нее, чтобы вы могли сказать, что это формула массива.
Теперь, это не идеально, потому что вы хотели отдельную таблицу результатов без дубликатов, а в этой есть много дубликатов. Вы можете использовать расширенный фильтр для отображения только уникальных значений - у вас есть возможность фильтрации на месте, которая скрывает строки или копирует его в другое место.
Если эта отдельная таблица результатов находится на том же листе, что и исходные данные, фильтрация на месте также скроет строки из исходных данных, поэтому вам может быть лучше поместить эту отдельную таблицу на другой лист.
Если вы фильтруете, копируя в новое место (возможно, только вправо), тогда вы можете просто скрыть столбцы результатов с дубликатами - просто следите, потому что сделанная вами копия - это просто значения, и они не будут автоматически обновление.