Позиция строки последнего совпадения

#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)
  

Информация об АГРЕГАТНОЙ функции здесь