#excel
#excel
Вопрос:
Мне интересно, какие методы / функции Excel я могу использовать, чтобы вернуть позицию строки последнего совпадения входных данных в данных.
Например, Apple должна вернуть 8. Оранжевый должен возвращать 9. Арбуз должен возвращать 7. Груша должна вернуть 5. Ананас должен вернуть 4.
Комментарии:
1. Если я загуглю текст вашего вопроса, первый результат ответит на вопрос.
2. @SJR забыл упомянуть об этом. Но без использования функции массива (ctrl shift enter)
3. Это, без сомнения, результат Google, на который ссылается @SJR: exceljet.net/formula/get-last-match . Если это поможет, моими поисковыми условиями были «последнее совпадение Excel в строке»
Ответ №1:
Единственный способ добиться этого без добавления каких-либо столбцов — это использовать функцию array (Ctrl Shift Enter).
Формула равна:
{=MAX(ЕСЛИ(критерии, СТРОКА(rng)-MIN (СТРОКА (rng)) 1))}
И вы получите ожидаемый результат:
Комментарии:
1. Возможно ли это сделать на VBA?
2. Да, это так. Вы можете вставить формулу массива с помощью vba или вы можете создать функцию, которая делает то же самое, но с использованием обычного кода.
Ответ №2:
К вашему сведению, вот альтернатива, которая не использует Ctrl Shift Enter
=AGGREGATE(14,4,(A1:A9="Apple")*(ROW(A1:A9)-MIN(ROW(A1:A9)) 1),1)
Информация об АГРЕГАТНОЙ функции здесь