Почти там - вам просто нужно сместить номер строки на индекс, основанный на 1, а затем использовать SMALL()
, чтобы набрать наименьшую строку в массиве:
{=INDEX(A3:A14,SMALL(IF((A3:A14>=G2)*(A3:A14<=G3)*(C3:C14>=G4),ROW(A3:A14)-ROW(A3)+1),1))}
Редактировать - в соответствии с запросом OP
SMALL([array/range],[k])
- простая функция, которая возвращает n-й (аргумент k) наименьший результат из массива / диапазона.
как текущийМассив IF()
создаст результирующий массив либо FALSE, либо номера строки (что-то вроде {FALSE;2;FALSE;4;FALSE;FALSE;7}
и т. Д. Без SMALL - мы получим только первый возвращенный результат, поэтому, если ваши критерии не соответствуют первой строке, выВместо этого мы получим ошибку.
Используя SMALL([IF-Array],1)
, мы можем получить первый наименьший результат из этого массива, который соответствует первой строке, где выполнены все критерии.
Вы можетеразверните эту формулу, чтобы использовать ROW(1:1)
в качестве аргумента [k]
, который позволит вам перетащить формулу вниз, чтобы получить каждое совпадение после этого