Страницы: 1
RSS
Расчет расхода компонентов на производство
 
Доброго времени суток. Есть таблица, где указаны все готовые изделия на производстве и компоненты из которых они изготавливаються. Нужно посчитать количество затраченых компонентов при внесении на приход конкретного изделия. Причем количество и сами компоненты можно было бы вписывать в сточку напротив готового изделия, тем самым имея возможность менять "состав" изделия и соответственно расчет.

Пытался сделать это с помощью функций ИНДЕКС и ПОИСКПОЗ, но в таком виде формула находит только первый компонент из столбца, а мне нужна сумма по всем компонентам такого типа.

Если просто использовать функцию СУММЕСЛИ, то она сначало суммирует все найденые цифры в приходе и цифры из кол-ва затрат на 1 изделие, а потом перемножает их. А мне надо наоборот:

Компонент_1 х Изделие_1 + Компонент_1 х Изделие_2... и т.д. = результат
 
Добрый и Вам. Так?
=СУММПРОИЗВ(I17*I11:I15)
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
 
Не совсем. Приход компонентов учитывать не нужно)) нужно корректно посчитать расход этих компонентов
 
Возможно неправильно обьяснил...

Из примера
В ячейке J18 нужно высчитать количество этого компонента на производство всех изделий.
Логика должна быть такой:
Формула сопоставляет значение в ячейке G18 (название компонента) с столбцами А и С. Как только находит, множит значение из столбца В или D (в зависимости от того, где компонент находиться) на кол-во прихода готового изделия и выводило сумму таких перемножений.
 
=СУММЕСЛИ($A$11:$A$18;G17;$B$11:$B$18)*I17+СУММЕСЛИ($C$11:$C$18;G17;$D$11:$D$18)*I17
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
 
Именно таким путем я и пошел первый раз, только как я уже писал, формула сначало суммирует результаты в столбцах, а потом перемножает эти суммы, а мне надо наоборот.
Данная формула выдает результат 55
Компонент_1 (2+4+2+3=11) х (Изделие_1 (2) + Изделие_2 (3) + Изделие_3 (0) + Изделие_4 (0) + Изделие_5 (0) =5 ) = 55
т.е. расход 55-ти изделий,

а если посчитать на калькуляторе, должно было бы выдать 16
Изделие_1 (2х2=4) + Изделие_2 (4х3=12) + Изделие_3 (0х0=0) + Изделие_4 (2х0=0) + Изделие_5 (3х0=0) = 16
Изменено: Jolly Roger - 02.12.2017 13:48:16
 
А по Вашему есть разница в выражениях :
x(a+b+c) и x*a+x*b+x*c
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
 
Выше исправил свое сообщение
 
Так?
=СУММПРОИЗВ(($A$11:$A$15=G17)*$B$11:$B$15;$I$11:$I$15)
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
 
Offtop
Bema, конечно  Len(x(a+b+c) ) = Len(x*a+x*b+x*c) = False  :)
 
По вопросам из тем форума, личку не читаю.
 
Вариант.
 
Цитата
Bema написал: =СУММПРОИЗВ(($A$11:$A$15=G17)*$B$11:$B$15;$I$11:$I$15)
Да, именно то, что нужно. Не поверите, второй день обдумывал как это считать... Спасибище огромнейшеее!!!
 
AleksSid , Ваш вариант не вариант, это в примере компонентов всего 2, а в реальной таблице 20. Кроме того, при добавлении нового изделия, хочеться просто в таблицу компонентов вписать "рецепт"
 
БМВ, так и без LEN x(a+b+c)=x*a+x*b+x*c вернет ЛОЖЬ ;)
Цитата
Jolly Roger написал:
Спасибище огромнейшеее!!!
Пожалуйста не меньше :)  
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
 
Для всего диапазона, формула массива (ввод Ctrl+Shift+Enter):
=СУММ(МУМНОЖ(ТРАНСП(ЕСЛИ($A$11:$E$15=G17;$B$11:$F$15;));$I$11:$I$15))
 
Код
=(СУММЕСЛИМН($B:$B;$A:$A;$G17)+СУММЕСЛИМН($D:$D;$C:$C;$G17)+СУММЕСЛИМН($F:$F;$E:$E;$G17))*СУММЕСЛИМН($J$11:$J$15;$G$11:$G$15;"Изделие_" & ПРАВСИМВ($G17;1))
Считает расход компонентов из G17 по изделию, у которого последний символ (цифра) равен последнему символу искомого компонента.
 
oldy7, зачем СУММЕСЛИМН, если СУММЕСЛИ справится?
Цитата
это в примере компонентов всего 2, а в реальной таблице 20.
И какая длина формулы будет при 20 компонентах? :)

Jolly Roger, сообщение 15. Формулу применить пробовали?
 
Цитата
vikttur написал:
И какая длина формулы будет при 20 компонентах?
Согласен) Не проснулся еще.
-------
Вообще очень многое значит организации структуры данных) Например в данном случае:
- столбец с изделиями, где каждое изделие "протянуто" на весь ассортимент компонентов
- во втором идут компоненты потребляемые на производство этого изделия
- в третьем расход в штуках
 
Цитата
vikttur написал:
Jolly Roger, сообщение 15. Формулу применить пробовали?
Нет, оставил вариант от Bema.
да, формула длинная, но пугает другое... файлик начал жестко тормозить, когда я ее размножил. Наверное прийдеться отключить автоматический пересчет формул...

oldy7, а структура завязана именно так, потому как и изделия и компоненты еще продаються отдельно. у каждого свой персональный код. от этого и выборка в конструкторе привязана к названию компонента. в реальной таблице привязка к кодам.
к тому же структура сложная: некоторые компоненты состоят в свою очередь из других компонентов
 
Еще вариант для для всего диапазона, формула массива.
=СУММПРОИЗВ(ЕСЛИОШИБКА((($A$11:$E$15=G18)*($B$11:$F$15));0)*$I$11:$I$15)
 
Цитата
Jolly Roger написал: Нет, оставил вариант от Bema... файлик начал жестко тормозить,
И кто мешает проверить формулу с МУМНОЖ?

А правильней: меняйте структуру данных
Цитата
Вообще очень многое значит организации структуры данных)
oldy7 предложил вариант. Но, на мой взгляд, расточительный (много неиспользованных строк).

Мое видение.
Таблица1: Комплектующее-Количество(комплектующего)-Изделие
Таблица2: Изделие-Количество(изделия)
Или одна таблица: Изделие-Количество(изделия)-Комплектующее-Количество(комплектующего)
Вариант с двумя таблицами предпочтительнее.

Цитата
структура сложная
правильное построение таблиц зависит от этой структуры.
 
vikttur,вот реальная, еще не доделанная таблица. Только не пугайтесь ассортиментом ))
в таблице завязана и продажа и производство. в дальнейшем будет привязка еще и к здельной з/п работников исходя из принятых на приход готовых изделий или их компонентов.


https://drive.google.com/open?id=1oWwkAhm44rOY_lFg-X9CE9fjltYHFYte
Страницы: 1
Читают тему
Наверх