Вернуть второе (и последующее) уникальное имя в списке - PullRequest
0 голосов
/ 20 февраля 2019

У меня есть список данных, которые я получаю от третьих лиц.Для простоты предположим, что столбец A - это уникальный идентификатор (буквенно-цифровой), а столбец B - сотрудник, которому назначен этот идентификатор.Один сотрудник имеет несколько удостоверений личности, так как они работают несколько дел одновременно.Некоторые из уникальных идентификаторов начинаются с «AC», и эти идентификаторы являются особыми случаями.

Мне нужна формула, которая будет искать в столбце A на листе «Необработанные данные» любой номер лицензии, который начинается с «AC», и возвращать имя Назначенного сотрудника на моем листе «Назначенные сотрудники».Это достаточно просто для первого с простой формулой соответствия индекса.Однако мне нужно вернуть второе имя и любые другие имена, которые там есть.В приведенном ниже примере мне понадобится вернуть Пола, а затем Ли.

Column A     Column B  
Unique ID    Assigned Employee  
AC798358     Paul  
90807248     Paul  
AC48298      Lee  
B98281       Lee  
AC42795      Lee  

Таблица «Назначенные сотрудники» выглядит следующим образом:

Employee 1     Employee 2     Employee 3     Employee 4
Paul           Lee 

Я использую эту формулу соответствия индекса, чтобы получить первое возвращение (Пол), но оно будет толькоработать для первого идентификационного номера «AC» на листе.

=INDEX('Assigned'!$B:$B,MATCH("AC*",'Assigned'!$A:$A,0))

Я пробую эту формулу, которая принесет первый и последующий возврат, изменив число «k» для функции «Small», но он не работает для меня.

=INDEX('Assigned'!$B:$B,SMALL(IF('Assigned'!$A:$A="AC*",ROW('Assigned'!$A:$A)-ROW(INDEX('Assigned'!$A:$A,1,1))+1),1))

Я знаю, что ему не нравится эта часть: IF('Assigned'!$A:$A="AC*",, но я не знаю, как еще написать ее, чтобы она работала.Любая помощь будет оценена.

Возможно, актуально: в этом наборе данных много пустых строк.

1 Ответ

0 голосов
/ 20 февраля 2019

Существует стандартный метод формулы массива для извлечения уникального списка из списка дубликатов.Для ваших примеров данных поместите это в D2, закончите с помощью ctrl + shift + enter (он же CSE), затем перетащите вправо.

=INDEX($B2:$B10, MATCH(0, COUNTIF($C2:C2, $B2:$B10), 0))

Вы можете добавить условия (например, IF (LEFT ($ A2: $ A10,2) = "AC") к этому.

=INDEX($B2:$B10, MATCH(0, IF(LEFT($A2:$A10, 2)="AC", COUNTIF($C2:C2, $B2:$B10)), 0))

Этот стиль формулы LISTUNIQUE требует неиспользуемой ячейки слева (или выше, если перечисление в строках). Если у вас нет места длянеиспользуемой ячейки слева или выше, вы можете избежать этого, используя более обычную формулу для достижения первого элемента в списке и изменив вторую, чтобы использовать первую в качестве контрольной начальной точки.

'in D2
=INDEX(B2:B10, MATCH("AC*", A2:A10, 0))
'in E2 (with CSE and dragged right)
=INDEX($B2:$B10, MATCH(0, IF(LEFT($A2:$A10, 2)="AC", COUNTIF($D2:D2, $B2:$B10)), 0))

enter image description here

Вы можете избежать ошибок # N / A, когда у вас заканчиваются совпадающие элементы с функцией обертки IFERROR.

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