Как подставить значение по условию в 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)
)


