Мне нужно извлечь данные из одного столбца, где условие соответствует из другого столбца, используя индекс и соответствие - PullRequest
0 голосов
/ 14 апреля 2019

На этом листе у меня есть диапазон в B1:C18, где я хочу вернуть column C значения в G column, где все значения совпадают с column B со значением условия в E1.

Но я получаю только верхнее значение из столбца C, но не все (т. Е. Sep 2 имеет два значения 443 и 472), но возвращает только 443.

Может ли кто-нибудь посмотреть на формулу, возвращаемую в G1 как

={IF(ISERROR(INDEX($B$1:$C$18,SMALL(IF($B$1:$B$18=$E$1,ROW($B$1:$B$18)),ROW(1:1)),2)),"", INDEX($B$1:$C$18,SMALL(IF($B$1:$B$18=$E$1,ROW($B$1:$B$18)),ROW(1:1)),2))}.

Ответы [ 2 ]

0 голосов
/ 14 апреля 2019

Может быть, вы можете попробовать

=iferror(split(textjoin(", ", 1, filter(C2:C, B2:B=E1)), ", ", 1))

и посмотреть, работает ли это?

0 голосов
/ 14 апреля 2019

Получить ответы в столбце

Хорошо, я проверил и вашу формулу, и это тоже правильно. Я изменил его, чтобы он был ArrayFormula в Google Sheets. Просто проверьте.

Формула 1

=ArrayFormula(IF(ISERROR(INDEX($B$1:$C$18,SMALL(IF($B$1:$B$18=$E$1,ROW($B$1:$B$18)),ROW(1:1)),2)),"", INDEX($B$1:$C$18,SMALL(IF($B$1:$B$18=$E$1,ROW($B$1:$B$18)),ROW(1:1)),2)))

Вы можете попробовать эту формулу тоже -

Формула 2

=ArrayFormula(IFERROR(INDEX($C$1:$C$18, SMALL(IF(E$1=$B$1:$B$18, ROW($C$1:$C$18),""), ROW())),""))

Просто скопируйте формулу в ячейки соответствующего столбца, и все готово.

Получить ответы в одной ячейке

Используйте эту формулу массива для своих листов Google -

=ArrayFormula(TEXTJOIN(", ",TRUE,IF(B1:B18 = E1,C1:C18,"")))

Он объединит все значения в одну ячейку.

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