=INDEX(SHEET2!C:C,aggregate(14,6,row(Sheet2!A$2:A$10)/((Sheet2!A$2:A$10=A2)*(Sheet2!B$2:B$10=B2)),1))
Приведенная выше формула использует AGGREGATE, которая выполняет операции, подобные массиву, фактически не являясь массивом, по крайней мере, для некоторых функций, таких как 14 и 15. 14 указывает AGGREGATE сортировать результаты от наибольшего к наименьшему, 15 сортирует от наименьшего к наибольшему. 6 говорит AGGREGATE игнорировать результаты, которые приводят к ошибкам.
ROW(SHEET2!A$2:A$10)
Эта часть дает AGGREGATE номер строки, которая в данный момент оценивается.
((Sheet2!A$2:A$10=A2)*(Sheet2!B$2:B$10=B2))
Эта часть является двумя условиями, которые должны быть выполнены, чтобы AGGREGATE не получил ошибку. * Действует как функция AND. когда оба или один из них имеют значение false, результат в результате равен 0, что вызывает ошибку деления на 0. Если оба результата верны, то это приводит к 1, и номер строки не изменяется путем деления на один. Вы получите список отфильтрованных результатов, которые соответствуют вашим критериям.
1 говорит AGGREGATE, что нужно возвращать результаты 1 из отсортированного списка. Это означает, что при наличии нескольких строк, соответствующих вашим критериям, последняя соответствующая строка возвращается для функции 14 AGGREGATE, а первая строка возвращается для функции 15.
Теперь, когда у вас есть номер строки, его можно вставить в полную ссылку на столбец для INDEX, чтобы извлечь информацию из соответствующей строки столбца.
Поскольку AGGREGATE использует массивы, подобные вычислениям, следует избегать полных ссылок на столбцы в функции AGGREGATE, чтобы уменьшить дополнительные вычисления, которые, в свою очередь, могут затормозить вашу систему. В функции AGGREGATE диапазон должен быть ограничен вашими данными.
Настройте диапазоны в соответствии с вашими данными.
Вы не указали, что вы хотели в результате, когда что-то не было найдено в списке. В настоящее время он вернет ошибку. Чтобы привести это в порядок, вы можете обернуть все это в функцию IFERROR и сделать так, чтобы она выглядела следующим образом:
=IFERROR(INDEX(Sheet2!C:C,AGGREGATE(14,6,ROW(Sheet2!A$2:A$10)/((Sheet2!A$2:A$10=A2)*(Sheet2!B$2:B$10=B2)),1)),"NO MATCH")

