Как подставить значение по условию в Excel

введите сюда описание изображения

Подскажите, как по условию подставить артикулы, которые соответствуют номеру?


Ответы (2 шт):

Автор решения: rotabor

Несложное решение:

введите сюда описание изображения

для Excel
[T2 и размножить вниз]=CONCAT(REPT($A$1:$G$1;N($A$2:$G$16=S2)))
для Таблиц Гугл
[T2 и размножить вниз]=ARRAYFORMULA(TEXTJOIN("";ИСТИНА;ПОВТОР($A$1:$G$1;Ч($A$2:$G$16=S2))))

Или, одной формулой:

для Excel
[T2]=MAP(S2:S8;LAMBDA(x;CONCAT(REPT(A1:G1;N(A2:G16=x)))))
для Таблиц Гугл
[T2]=ARRAYFORMULA(MAP(S2:S8;LAMBDA(x;TEXTJOIN("";ИСТИНА;ПОВТОР(A1:G1;Ч(A2:G16=x))))))
→ Ссылка
Автор решения: Vitalizzare ушел в монастырь

Предположим, опираясь на предоставленный скриншот, что вы работаете в Google Sheets, и сформулируем задачу таким образом:

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

Мы можем сделать это с помощью следующей формулы:

=let(
_1, "исходные данные",
articles, A1:C1, numbers, A2:C4, valid_numbers, E2:E4, 
_2, "расположить строки номеров в одну колонку",
myindex, tocol(numbers), 
_3, "создать колонку артикулов, соответствующих колонке номеров",
values, tocol(map(sequence(rows(numbers)), lambda(_, articles))), 
_4, "создать критерий отбора номеров",
criteria, arrayformula(not(isna(match(myindex, valid_numbers, 0)))), 
_5, "состыковать и отфильтровать номера и артикулы",
filter(hstack(myindex, values), criteria) 
)

Тестовая таблица:

A B C D E F G
A123 B456 C789 Выборка Номер Артикул
1 2 3 2 =let(...)
2 3 4 4
5 5

Ожидаемый результат:

скрин результата


P.S. Возможная альтернатива в Excel:

=let(
_1, "исходные данные",
articles, A1:C1, numbers, A2:C4, valid_numbers, E2:E4, 
_2, "расположить строки номеров в одну колонку",
myindex, tocol(numbers), 
_3, "создать колонку артикулов, соответствующих колонке номеров",
values, tocol(if(sequence(rows(numbers)), articles)),
_4, "создать критерий отбора номеров",
criteria, not(isna(match(myindex, valid_numbers, 0))), 
_5, "состыковать и отфильтровать номера и артикулы",
filter(hstack(myindex, values), criteria) 
)
→ Ссылка