Возвращаемое значение последнего совпадения - PullRequest
0 голосов
/ 31 мая 2009

Мне нужна формула для возврата значения данных для последнего совпадения «Текст». Номер строки также приемлем. Макрос НЕ приемлем. Имя столбца не отсортировано и не может быть отсортировано! В качестве значения поиска используется только столбец «Имя». Я бы предпочел использовать вспомогательный столбец (столбцы) вместо формулы массива.

Row Name    Data
1   Joe     10
2   Tom     20
3   Eva     30
4   Adam    40
5   Tom     21

LARGE работает только с числами, а VLOOKUP возвращает только первое совпадение. LOOKUP работает только иногда, поэтому его тоже нет.

Так что, если я хочу последний матч для "Тома", он должен вернуть "21".

Ответы [ 4 ]

1 голос
/ 03 апреля 2013

Я думаю, что это самый простой способ сделать это.

=LOOKUP("Tom";A2:B7)
1 голос
/ 31 января 2010

Формул массива можно избежать с помощью вспомогательного столбца. Предположим, что в F1 есть имя для совпадения (например, Том) В строке C2 вспомогательного столбца введите

=IF(A2<>$F$1,0,row())

Затем скопируйте формулы вместе с вашими данными.

Теперь столбец C содержит 0 для не совпадающих имен и номер строки для совпадающих. Максимизация столбца дает строку решения. Теперь результат прост в использовании правильного смещения с функцией смещения:

=OFFSET(B1,max(C:C)-1,0)

PS: моя копия Excel написана на итальянском языке, поэтому я не могу проверить эту формулу на английском языке.

0 голосов
/ 01 июня 2009

Я придумала решение, но оно требует, чтобы числа в данных были параллельными, например

Name        Data
Joe         1
Tom         1
Eva         1
Adam        1
Tom         2
Tom         3
Eva         2

Но это нормально, так как мои данные в любом случае выглядят так. Таким образом, если имя используется раньше, тогда оно должно быть старшим старшим +1, то есть одновременно.

Имя - A1, а Data - B1, и эта формула переходит в C2:

FLOOR(SQRT(2*SUMIF(A2:A7,A2,B2:B7)),1)
0 голосов
/ 31 мая 2009

Создать столбец с формулой массива (введите его с помощью Ctrl + Shift + Enter):

=VLOOKUP(MAX(IF($B$2:$B$6=B2, $A$2:A$6, 0)), $A$2:$C$6, 3, FALSE)

Чтобы убедиться, что вы все сделали правильно, нажмите на ячейку, и формула должна быть заключена в фигурные скобки ({}).

Примечание. Предполагается, что «Строка» находится в A1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...