Используя эту формулу будет работать (ввести в A1 на листе 2 и перетащить справа)
=IF(Sheet1!A$2:$F$2="Yes",Sheet1!A$1:$F$1,"")
Примечание: Введите в качестве массива, нажав CTRL + SHIFT + ENTER.
Редактировать: Я заметил, что приведенная выше формула оставит пробел между столбцами, имеющими эквивалент «нет». Я пытаюсь получить формулу, которая удаляет пробел, но все же позволяет перетащить право. Следующее делает это за исключением Я не могу понять, почему «Боб» в А1 не возвращается. Это начинается с «Сэма». (Также введите как массив)
=INDEX(Sheet1!$A1:$F1,SMALL(IF(Sheet1!$A2:$F2="Yes",COLUMN(Sheet1!$A1:$F1)-COLUMN(Sheet1!$A1)+1),COLUMNS(Sheet1!$A1:B1)))
Любые идеи? Я подозреваю, что это связано с моим использованием Small()
. Если вы измените его на Large()
порядок, что она возвращает перевернуто
Вот таблица:
и вот что Sheet2 выглядит при использовании, что формула массива:
. .. Что о Бобе ?!
(#num только потому, что больше нет совпадений. Просто выбросьте IfError([array formula], "")
вокруг всего, чтобы удалить это).
Редактировать2: Получил! Используйте эту формулу, вводится как формула массива:
=IFERROR(INDEX(Sheet1!$A1:$F1,SMALL(IF(Sheet1!$A2:$F2="Yes",COLUMN(Sheet1!$A1:$F1)-COLUMN(Sheet1!$A1)+1),COLUMNS(Sheet1!$A1:A1))),"")
(Окончательный диапазон должен быть $A1:A1
, не $A1:B1
)
что вы пробовали до сих пор? – skypjack
Вам нужен ответ VBA или будет работать формула? – BruceWayne