Это может быть то, что вы ищете:
=SMALL(IF(ISERR(FIND([@ID],Table2[ID],1)),999999,Table2[Date]),3)
введено как формула массива [CTRL-SHIFT-ENTER
].
Объяснение
FIND([@ID],Table2[ID],1)
ищет ID
из Table1
в столбце ID
в Table2
.FIND
возвращает Integer
в случае успеха и #VALUE
в случае неудачи.Так как это формула массива, мы получаем массив Integer
или #VALUE
, по одному значению для каждой строки в Table2
.
. Оберну вышеупомянутое в ISERR(above)
, который дает массивзначения, которые TRUE
(если ID
было НЕ найдено) или FALSE
(если ID
было найдено).
Все это обернуто IF(above,999999,Table2[Date])
: если TRUE
мы возвращаем 999999
(любое число больше вашей максимальной даты);если FALSE
, мы возвращаем Date
из Table2
.Снова получаем массив значений.
Наконец, оберните предыдущий результат в SMALL(above,3)
, чтобы вернуть 3-е наименьшее из массива.
Надеюсь, что поможет