2

Учитывая столбцы A и B, я хочу перечислить значения A, которые имеют непустую B-ячейку в своей строке, в столбце C:

A     B     C
One         Two
Two   x     Four
Three
Four  x
...

Лучшее, что я придумал, это

{=INDEX(A1:A4;MATCH(TRUE;B1:B4<>"";0))}

что дает мне "два" в C1, но как мне продолжить?

Примечание. Это упрощенная версия моей проблемы: в действительности существует несколько столбцов, таких как B, поэтому фильтрация недоступна. Более того, B и C не находятся на одном листе, и я хочу, чтобы C-лист автоматически обновлялся всякий раз, когда я редактирую B-лист, поэтому копирование и вставка также нецелесообразны.

3 ответа3

2

Почему бы не отфильтровать список на месте? Фильтруйте список на основе столбца B для всех строк, где B не является пустым, например

Затем, если вам это нужно в столбце C, просто скопируйте и вставьте его. Помните, что после фильтрации некоторые ячейки будут скрыты, поэтому копирование / вставка могут выглядеть некорректно, пока вы не очистите фильтр.

1

Это будет работать для вашего примера и может быть легко адаптировано, если у вас есть заголовки, больше столбцов или больше строк.

=IFERROR(INDEX($A$1:$A$4,SMALL(IF(ISBLANK($B$1:$B$4),"",ROW($B$1:$B$4)-ROW($C$1)+1),ROW(C1)-ROW($C$1)+1)),"")

Введите формулу в C1 и удерживайте Ctrl+Shift, затем нажмите Enter. Разверните формулу до C4, чтобы получить полные результаты для вашего примера.

Заголовки или столбцы теперь могут быть вставлены в пример, и это все еще будет работать. Чтобы обработать больше строк, измените диапазон $A$1:$A$4 и $B$1:$B$4 соответственно

См. Также статью службы поддержки Microsoft. Поиск n-го значения, соответствующего условию.

0

Хорошо, если вам нужна формула, это будет работать для простого примера. Я не совсем уверен, как расширить его, чтобы включить другие столбцы (да, я признаю, что я сделал это вместе, это меня расстраивает).

Это формула массива, поэтому CSE (Ctrl Shft Enter) и перетащите вниз.

=INDEX($A$2:$A$6,SMALL(IF($B$2:$B$6<>"",MATCH(ROW($B$2:$B$6),ROW($B$2:$B$6)),""),ROW(A1)))

Я знаю, что это не лучший способ сделать это, но пока не появятся Барри, Джерри, Экселлелл или кто-то еще, это лучшее, что у меня есть.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .