Игнорировать повторяющиеся имена, чтобы выбрать необходимый критерий, Excel - PullRequest
0 голосов
/ 10 января 2019

Я использую приведенную ниже формулу для получения конкретной даты на основе 2 критериев - ячейка даты G1 и ячейка имени агента G2: G12

данные имеют дубликаты, поэтому одно и то же имя может появляться 4 раза с различной информацией рядом с каждым именем. формула будет собирать данные от имени, которое появляется, однако мне бы хотелось, чтобы она выбрала определенный фрагмент данных, который может появиться рядом с 3-м дубликатом.

=INDEX($C$1:$C$11,MATCH($G$1&$G2,$A$1:$A$11&$B$1:$B$11,0))

Можно ли как-нибудь добавить в мою текущую формулу (или использовать другую), где вы игнорируете имена, если они не содержат конкретной необходимой информации?

Столбец C - это данные, B - возможные дубликаты имен, E - какие данные необходимо извлечь из данных в C

.

enter image description here

1 Ответ

0 голосов
/ 10 января 2019

Самой простой вещью может быть фильтр.

Но эта массив формула также должна работать. Я использовал таблицы и структурированные ссылки, но вы можете изменить ссылки на ссылки на ячейки, если не хотите. Но мне очень удобно работать с таблицами, так как вы автоматически получаете ссылки на динамический диапазон.

H2:  =IFERROR(INDEX(Codes[Req Codes],AGGREGATE(14,6,MATCH(INDEX(fullTbl[[#All],[Exception code]],N(IF(1,1/((fullTbl[Date]=$G$1)*(fullTbl[Agent Name]=G2))*ROW(fullTbl)))),Codes,0),1)),"")

Поскольку это формула массива, вам нужно «подтвердить» ее, удерживая нажатой ctrl + shift при нажатии , введите . Если вы сделаете это правильно, Excel поместит фигурные скобки {...} вокруг формулы, как показано на панели формул.

РЕДАКТИРОВАТЬ : для формулы, не использующей таблицы / структурированные ссылки, попробуйте:

=IFERROR(INDEX($E$2:$E$5,AGGREGATE(14,6,MATCH(INDEX($C$1:$C$13,N(IF(1,1/(($A$2:$A$13=$G$1)*($B$2:$B$13=G2))*ROW($A$2:$C$13)))),$E$2:$E$5,0),1)),"")

enter image description here

С расширенным фильтром:

enter image description here

...