SUM стойности на колоната с разходи на всички записи, съответстващи на списък с елементи

Ето моята настройка на листа:

  • Имам лист „Инвентар“, който съдържа редове с всички мои артикули в наличност. Всеки артикул има стойност/колона за „Цена“ и колона за „Продажна цена“.
  • Имам друг лист „Фотография“, който ще има за всеки ред/запис клетка, която указва кои са списъкът с елементи, използвани в снимка, цитирана от някакъв опис item ref. И от това искам да vlookup или нещо подобно, да извлека "цената" на всички тези елементи в списъка и да ги обобщя.
  • По този начин мога да знам за конкретна снимка какви са всички елементи, използвани в снимката, и колко е цената на всички тези елементи (обобщено).
  • След това ще направя същото за „Продажната цена“, като по този начин за всяка снимка, която направя, ще мога да разбера цената на този продуктов артикул „както е“ (с всички различни артикули от инвентара) и разпродажбата цена.

Пример:

въведете описание на изображението тук

Успях да направя това само за 1 елемент, но искам формулата да работи върху „списъка“ с елементи в B9.

Дори опитах с тази формула за заявка, просто не знаех как да кажа „съвпадение на всеки елемент от списъка“, което ще бъде низ в друга клетка:

=SUM(QUERY(A:B,"select B where A matches 'ID-100'"))

person KBog    schedule 07.01.2017    source източник


Отговори (1)


Ако вашата колона „използвани артикули“ постоянно използва формат, разделен със запетая, за списъци с артикули, следното ще работи.

=query(Cost!A:B, "select sum(B) where A = '" & join("' or A = '", split(B9, ", ")) & "' label sum(B) ''")

Тук split разделя списъка с използвани елементи на отделни идентификатори на елементи. След това те се обединяват чрез поставяне на ' or A = ' между тях, например:

ID-101' or A = 'ID-101

Има битове, поставени преди и добавени, за да формират низа на заявката, напр.

select sum(B) where A = 'ID-101' or A = 'ID-101' label sum(B) ''

което върши работа. Етикетната част е необходима, за да получите изход от една клетка, без заглавката „Sum(Cost)“ да ви пречи.


Подробности относно разделянето: както е написано по-горе, split(B9, ", ") се разделя чрез или запетая или интервал (пренебрегвайки празния низ в изхода). Така че ще работи дори с ID-1,ID-2, ID-3 ID-4. От друга страна, това може да е проблем, ако вашите идентификатори съдържат интервали. По-строгият режим на разделяне е split(B9, ", ", False), който изисква целият низ ", " да се използва като разделител.

person Community    schedule 07.01.2017
comment
Благодаря, точно това исках! - person KBog; 08.01.2017