Итак, у меня есть продукт, сделанный из нескольких материалов и помеченный идентификаторами материалов. Мне нужно извлечь несколько идентификаторов материалов из ячейки и найти связанные с ними затраты из другой таблицы, а затем просуммировать их все, чтобы найти общую стоимость производства. Это легко сделать, когда для продукта необходим только один материал, с помощью простого поиска по x, однако, когда имеется несколько идентификаторов материала, это не работает. Это небольшой выдуманный проект, в котором я начинаю бизнес по продаже ювелирных изделий. Прошу прощения, если ответ очень простой, я не эксперт по Excel. В любом случае помощь приветствуется, спасибо!
Я знаю, что мог бы обойти эту проблему, сначала создав третью таблицу только для определения себестоимости производства и помещая каждый идентификатор материала в отдельную ячейку, но я очень надеялся, что смогу найти способ избежать этого и выяснить, как выполнять xlookup и суммировать несколько материалов на основе их идентификатора из одной ячейки.
Как вы можете видеть в ячейке K12, ожерелье состоит из трех разных материалов (три идентификатора материала). Как мне найти эти три показателя и просуммировать их для получения общей себестоимости?
Вот фото для справки:
А вот мой код для столбца «Себестоимость производства»:
=SUM(XLOOKUP([@[Material IDs Needed]],Table1[Material ID],Table1[Material Cost]))
В этой формуле используются VLOOKUP
и TEXTSPLIT
. При необходимости замените диапазоны ссылкой на имя столбца.
=SUM(VLOOKUP(VALUE(TEXTSPLIT(K4,",")),B$4:D$12,3,FALSE))
Если у вас есть Microsoft 365, вы можете определить функции (Formulas > Define Name)
для упрощения обслуживания:
Определите имена:
fxGetIds =LAMBDA(ids, TEXTSPLIT(ids,","))
fxLookupCost =LAMBDA(id, XLOOKUP(VALUE(id),Table1[Marterial ID],Table1[Material cost],0))
fxCost =LAMBDA(ids,SUM(MAP(fxGetIds(ids), LAMBDA(id, fxLookupCost(id)))))
Затем в столбце «Затраты на производство»
=fxCost([@[Material Ids Needed]])
Спасибо, мне нравится использовать xlookup, поэтому я поменял его, но он сработал отлично, большое спасибо. Вот что у меня есть: =SUM(XLOOKUP(VALUE(TEXTSPLIT(K4,",")),Table1[ID материала],Table1[Стоимость материала]))