Если вы используете эту формулу массива (Ctrl + Сдвиг + Введите, когда в строке формул) и скопировать эту формулу вниз он поместит каждый результат, который соответствует обоим критериям в отдельной ячейке, затем свободно использовать конкатенацию, чтобы построить строку из них, если хотите. Только VBA поддерживает только другое решение.
=IFERROR(INDEX($B$1:$D$5,SMALL(IF($B$1:$B$5=$F$2,IF($C$1:$C$5=$G$2,ROW($B$1:$B$5)-ROW(INDEX($B$1:$B$5,1,1))+1)),ROW(1:1)),3),"")
Пожалуйста, обратите внимание, что я только построил это на основе небольшого диапазона (B1:D5
) и предположили, что критерии в поисковых F2
и G2
.
Использование small с инструкцией IF позволяет получить доступ к диапазону в виде массива. где оба критерия совпадают, оператор if создает массив строк, который SMALL будет извлекать от самого маленького до самого большого, поскольку Row (1: 1) будет атомарно обновляться, когда формула будет скопирована, чтобы увеличить номер строки, которую SMALL извлекает.
(это было немного авральном, так что я знаю, что мое описание плохо, не стесняйтесь редактировать или зонд для более подробно, и я могу обновить его позже с помощью лучшего объяснения)
я думаю (?) вы хотите использовать таблицу Vlookup ... но что вы пробовали до сих пор? Что/не сработало? – BruceWayne
@BruceWayne, я попытался использовать комбинацию формул Index & Match, но он возвращает только одно значение за раз. Что-то вроде этого = INDEX (MATCH («A» & «12», B: B & C: C, 0), 0,0). Мне нужно получить способ вернуть все индексы соответствия. –
Почему выходные X и Y, когда имя A находится в той же строке, что и задачи X и Z и Emp 12, находятся в тех же строках, что и X и Z? Любая формула поиска возвращает только первое совпадение. Для нескольких результатов вам понадобится фильтр или формула массива. – teylyn