Index / Match - поиск 2-го значения, если 1-е значение пустое - PullRequest
0 голосов
/ 01 мая 2018

Я надеялся получить некоторую помощь в написании формулы в Excel. У меня есть таблица со списком сотрудников и номером их мобильного телефона. Однако таблица структурирована таким образом, что в ней есть несколько пустых и повторяющихся строк.

По сути, я надеюсь создать новую таблицу без дубликатов и пробелов, выполнив поиск по соответствующим номерам сотового телефона.

Проблема в том, что когда я делаю стандартную формулу индекса / соответствия, формула будет захватывать только первое значение поиска, которое чаще всего является пустой строкой.

Как бы я изменил эту формулу, чтобы сказать что-то вроде: «Посмотрите это значение. Если значение пустое, посмотрите второе значение»?

Вот пример того, как выглядит таблица:

Table 1 (Original)
    +---------------+--------------+
    | Employee Name |  Cell Phone  |
    +---------------+--------------+
    | Doe, John     |              |
    | Doe, John     | 111-111-1111 |
    | Smith, Eric   | 222-222-2222 |
    | Jones, Dave   |              |
    | Jones, Dave   | 333-333-3333 |
    +---------------+--------------+

Table 2 (What I want the table to look like)
    +---------------+--------------+
    | Employee Name |  Cell Phone  |
    +---------------+--------------+
    | Doe, John     | 111-111-1111 |
    | Smith, Eric   | 222-222-2222 |
    | Jones, Dave   | 333-333-3333 |
    +---------------+--------------+



=Index(Table1[Cell Phone], Match([Employee Name], Table1[Employee Name],0))

1 Ответ

0 голосов
/ 01 мая 2018

Как насчет первого непустого совпадения?

=INDEX(B:B, AGGREGATE(15, 6, ROW($2:$999)/((A$2:A$999=F2)*(B$2:B$999<>"")), 1))
'listobject table alternative
=INDEX(Table1[Cell Phone], AGGREGATE(15, 6, (ROW(Table1[Cell Phone])-ROW(Table1[#Headers]))/((Table1[Employee Name]=F7)*(Table1[Cell Phone]<>"")), 1))

enter image description here

...