Nicotine
Дата: Понедельник, 10.12.2018, 18:51 |
Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация:
0
±
Замечаний:
0% ±
Excel 2010
Добрый вечер. Прошу помочь в одном вопросе. Нужен способ обработки заказов на магазины, а именно - уменьшение заказа до остатка склада. во вложении пример. левое поле - заказы магазинов правое поле - остатки склада нужна формула/макрос которая будет делать следующее: - суммировать заказ по артикулу - в случае, если сумма заказа больше остатка склада, начинаем уменьшать левое поле. столбик "изначальный заказ". - уменьшать на определенный шаг (столбик кратность. для каждого артикула своя цифра) каждую строку левого поля, до тех пор, пока сумма заказа будет не больше суммы остатка. - начинать уменьшение с самого большого значения "заказ" по каждому артикулу - в случае, если уменьшение всех заказов по артикулу на одну кратность не уменьшает сумму заказа до остатка склада, запустить уменьшение каждого заказа снова (каждый раз начиная с самого большого заказа), пока сумма заказа не станет меньше или равна сумме остатка склада. столбик финальный заказ - то, что нужно на выходе и автоматически. Коллеги, очень нужна помощь, тратим уйму времени на простейшие и однотипные операции. Спасибо!
Добрый вечер. Прошу помочь в одном вопросе. Нужен способ обработки заказов на магазины, а именно - уменьшение заказа до остатка склада. во вложении пример. левое поле - заказы магазинов правое поле - остатки склада нужна формула/макрос которая будет делать следующее: - суммировать заказ по артикулу - в случае, если сумма заказа больше остатка склада, начинаем уменьшать левое поле. столбик "изначальный заказ". - уменьшать на определенный шаг (столбик кратность. для каждого артикула своя цифра) каждую строку левого поля, до тех пор, пока сумма заказа будет не больше суммы остатка. - начинать уменьшение с самого большого значения "заказ" по каждому артикулу - в случае, если уменьшение всех заказов по артикулу на одну кратность не уменьшает сумму заказа до остатка склада, запустить уменьшение каждого заказа снова (каждый раз начиная с самого большого заказа), пока сумма заказа не станет меньше или равна сумме остатка склада. столбик финальный заказ - то, что нужно на выходе и автоматически. Коллеги, очень нужна помощь, тратим уйму времени на простейшие и однотипные операции. Спасибо! Nicotine
Ответить
Сообщение Добрый вечер. Прошу помочь в одном вопросе. Нужен способ обработки заказов на магазины, а именно - уменьшение заказа до остатка склада. во вложении пример. левое поле - заказы магазинов правое поле - остатки склада нужна формула/макрос которая будет делать следующее: - суммировать заказ по артикулу - в случае, если сумма заказа больше остатка склада, начинаем уменьшать левое поле. столбик "изначальный заказ". - уменьшать на определенный шаг (столбик кратность. для каждого артикула своя цифра) каждую строку левого поля, до тех пор, пока сумма заказа будет не больше суммы остатка. - начинать уменьшение с самого большого значения "заказ" по каждому артикулу - в случае, если уменьшение всех заказов по артикулу на одну кратность не уменьшает сумму заказа до остатка склада, запустить уменьшение каждого заказа снова (каждый раз начиная с самого большого заказа), пока сумма заказа не станет меньше или равна сумме остатка склада. столбик финальный заказ - то, что нужно на выходе и автоматически. Коллеги, очень нужна помощь, тратим уйму времени на простейшие и однотипные операции. Спасибо! Автор - Nicotine Дата добавления - 10.12.2018 в 18:51
Nicotine
Дата: Вторник, 11.12.2018, 10:00 |
Сообщение № 2
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация:
0
±
Замечаний:
0% ±
Excel 2010
up
Ответить
Сообщение up Автор - Nicotine Дата добавления - 11.12.2018 в 10:00
Nicotine
Дата: Среда, 12.12.2018, 10:30 |
Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация:
0
±
Замечаний:
0% ±
Excel 2010
up
Ответить
Сообщение up Автор - Nicotine Дата добавления - 12.12.2018 в 10:30
Светлый
Дата: Среда, 12.12.2018, 11:13 |
Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 1829
Репутация:
510
±
Замечаний:
0% ±
Excel 2013, 2016
Добрый день! Удалось придумать только такую массивную формулу:Код
=E2-F2*ИЛИ(НАИБОЛЬШИЙ((C$2:C$16=C2)*(E$2:E$16-СТРОКА($2:$16)%%);СТРОКА(ДВССЫЛ("1:"&(СУММЕСЛИ(C$2:C$16;C2;E$2:E$16)-ВПР(C2;I$2:L$16;3))/ВПР(C2;I$2:L$16;4))))=E2-СТРОКА()%%)
Погоняйте с разными исходными данными. Может дать неправильный ответ. *Так лучше:Код
=E2-F2*ИЛИ(ЕСЛИОШИБКА(НАИБОЛЬШИЙ((C$2:C$16=C2)*(E$2:E$16-СТРОКА($2:$16)%%);СТРОКА(ДВССЫЛ("1:"&(СУММЕСЛИ(C$2:C$16;C2;E$2:E$16)-ВПР(C2;I$2:L$16;3))/ВПР(C2;I$2:L$16;4))));)=E2-СТРОКА()%%)
**Уменьшает только на одну порцию, даже если большое количество заказано.
Добрый день! Удалось придумать только такую массивную формулу:Код
=E2-F2*ИЛИ(НАИБОЛЬШИЙ((C$2:C$16=C2)*(E$2:E$16-СТРОКА($2:$16)%%);СТРОКА(ДВССЫЛ("1:"&(СУММЕСЛИ(C$2:C$16;C2;E$2:E$16)-ВПР(C2;I$2:L$16;3))/ВПР(C2;I$2:L$16;4))))=E2-СТРОКА()%%)
Погоняйте с разными исходными данными. Может дать неправильный ответ. *Так лучше:Код
=E2-F2*ИЛИ(ЕСЛИОШИБКА(НАИБОЛЬШИЙ((C$2:C$16=C2)*(E$2:E$16-СТРОКА($2:$16)%%);СТРОКА(ДВССЫЛ("1:"&(СУММЕСЛИ(C$2:C$16;C2;E$2:E$16)-ВПР(C2;I$2:L$16;3))/ВПР(C2;I$2:L$16;4))));)=E2-СТРОКА()%%)
**Уменьшает только на одну порцию, даже если большое количество заказано. Светлый
Программировать проще, чем писать стихи.
Сообщение отредактировал Светлый - Среда, 12.12.2018, 12:14
Ответить
Сообщение Добрый день! Удалось придумать только такую массивную формулу:Код
=E2-F2*ИЛИ(НАИБОЛЬШИЙ((C$2:C$16=C2)*(E$2:E$16-СТРОКА($2:$16)%%);СТРОКА(ДВССЫЛ("1:"&(СУММЕСЛИ(C$2:C$16;C2;E$2:E$16)-ВПР(C2;I$2:L$16;3))/ВПР(C2;I$2:L$16;4))))=E2-СТРОКА()%%)
Погоняйте с разными исходными данными. Может дать неправильный ответ. *Так лучше:Код
=E2-F2*ИЛИ(ЕСЛИОШИБКА(НАИБОЛЬШИЙ((C$2:C$16=C2)*(E$2:E$16-СТРОКА($2:$16)%%);СТРОКА(ДВССЫЛ("1:"&(СУММЕСЛИ(C$2:C$16;C2;E$2:E$16)-ВПР(C2;I$2:L$16;3))/ВПР(C2;I$2:L$16;4))));)=E2-СТРОКА()%%)
**Уменьшает только на одну порцию, даже если большое количество заказано. Автор - Светлый Дата добавления - 12.12.2018 в 11:13
Nicotine
Дата: Среда, 12.12.2018, 11:57 |
Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация:
0
±
Замечаний:
0% ±
Excel 2010
Спасибо! к вечеру проверю и отпишусь.
Спасибо! к вечеру проверю и отпишусь. Nicotine
Ответить
Сообщение Спасибо! к вечеру проверю и отпишусь. Автор - Nicotine Дата добавления - 12.12.2018 в 11:57
Светлый
Дата: Среда, 12.12.2018, 12:43 |
Сообщение № 6
Группа: Друзья
Ранг: Старожил
Сообщений: 1829
Репутация:
510
±
Замечаний:
0% ±
Excel 2013, 2016
До четырёх порций из каждого может вычитать. Формула массива:Код
=E2+F2*СУММ(-(ЕСЛИОШИБКА(НАИБОЛЬШИЙ((C$2:C$16=C2)*(E$2:E$16-{0;1;2;3}*F$2:F$16-СТРОКА($2:$16)%%);СТРОКА(ДВССЫЛ("1:"&(СУММЕСЛИ(C$2:C$16;C2;E$2:E$16)-ВПР(C2;I$2:L$16;3))/ВПР(C2;I$2:L$16;4))));)=E2-{0;1;2;3}*F2-СТРОКА()%%))
*Ну и расширенная универсальная. До 9 порций с заказа:Код
=E2+F2*СУММ(-(ЕСЛИОШИБКА(НАИБОЛЬШИЙ((C$2:C$16=C2)*(E$2:E$16-(СТОЛБЕЦ(A:I)-1)*F$2:F$16-СТРОКА($2:$16)%%);СТРОКА(ДВССЫЛ("1:"&(СУММЕСЛИ(C$2:C$16;C2;E$2:E$16)-ВПР(C2;I$2:L$16;3))/ВПР(C2;I$2:L$16;4))));)=E2-(СТОЛБЕЦ(A:I)-1)*F2-СТРОКА()%%))
До четырёх порций из каждого может вычитать. Формула массива:Код
=E2+F2*СУММ(-(ЕСЛИОШИБКА(НАИБОЛЬШИЙ((C$2:C$16=C2)*(E$2:E$16-{0;1;2;3}*F$2:F$16-СТРОКА($2:$16)%%);СТРОКА(ДВССЫЛ("1:"&(СУММЕСЛИ(C$2:C$16;C2;E$2:E$16)-ВПР(C2;I$2:L$16;3))/ВПР(C2;I$2:L$16;4))));)=E2-{0;1;2;3}*F2-СТРОКА()%%))
*Ну и расширенная универсальная. До 9 порций с заказа:Код
=E2+F2*СУММ(-(ЕСЛИОШИБКА(НАИБОЛЬШИЙ((C$2:C$16=C2)*(E$2:E$16-(СТОЛБЕЦ(A:I)-1)*F$2:F$16-СТРОКА($2:$16)%%);СТРОКА(ДВССЫЛ("1:"&(СУММЕСЛИ(C$2:C$16;C2;E$2:E$16)-ВПР(C2;I$2:L$16;3))/ВПР(C2;I$2:L$16;4))));)=E2-(СТОЛБЕЦ(A:I)-1)*F2-СТРОКА()%%))
Светлый
Программировать проще, чем писать стихи.
Сообщение отредактировал Светлый - Среда, 12.12.2018, 13:29
Ответить
Сообщение До четырёх порций из каждого может вычитать. Формула массива:Код
=E2+F2*СУММ(-(ЕСЛИОШИБКА(НАИБОЛЬШИЙ((C$2:C$16=C2)*(E$2:E$16-{0;1;2;3}*F$2:F$16-СТРОКА($2:$16)%%);СТРОКА(ДВССЫЛ("1:"&(СУММЕСЛИ(C$2:C$16;C2;E$2:E$16)-ВПР(C2;I$2:L$16;3))/ВПР(C2;I$2:L$16;4))));)=E2-{0;1;2;3}*F2-СТРОКА()%%))
*Ну и расширенная универсальная. До 9 порций с заказа:Код
=E2+F2*СУММ(-(ЕСЛИОШИБКА(НАИБОЛЬШИЙ((C$2:C$16=C2)*(E$2:E$16-(СТОЛБЕЦ(A:I)-1)*F$2:F$16-СТРОКА($2:$16)%%);СТРОКА(ДВССЫЛ("1:"&(СУММЕСЛИ(C$2:C$16;C2;E$2:E$16)-ВПР(C2;I$2:L$16;3))/ВПР(C2;I$2:L$16;4))));)=E2-(СТОЛБЕЦ(A:I)-1)*F2-СТРОКА()%%))
Автор - Светлый Дата добавления - 12.12.2018 в 12:43
Nicotine
Дата: Пятница, 14.12.2018, 19:28 |
Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация:
0
±
Замечаний:
0% ±
Excel 2010
добрый вечер. в последней Вашей формуле поиск наибольшего значения идет по колонке С, а должен по колонке Е. поправьте, если Вас не затруднит.Код
=E2+F2*СУММ(-(ЕСЛИОШИБКА(НАИБОЛЬШИЙ((C$2:C$16=C2)*(E$2:E$16-(СТОЛБЕЦ(A:I)-1)*F$2:F$16-СТРОКА($2:$16)%%);СТРОКА(ДВССЫЛ("1:"&(СУММЕСЛИ(C$2:C$16;C2;E$2:E$16)-ВПР(C2;I$2:L$16;3))/ВПР(C2;I$2:L$16;4))));)=E2-(СТОЛБЕЦ(A:I)-1)*F2-СТРОКА()%%))
добрый вечер. в последней Вашей формуле поиск наибольшего значения идет по колонке С, а должен по колонке Е. поправьте, если Вас не затруднит.Код
=E2+F2*СУММ(-(ЕСЛИОШИБКА(НАИБОЛЬШИЙ((C$2:C$16=C2)*(E$2:E$16-(СТОЛБЕЦ(A:I)-1)*F$2:F$16-СТРОКА($2:$16)%%);СТРОКА(ДВССЫЛ("1:"&(СУММЕСЛИ(C$2:C$16;C2;E$2:E$16)-ВПР(C2;I$2:L$16;3))/ВПР(C2;I$2:L$16;4))));)=E2-(СТОЛБЕЦ(A:I)-1)*F2-СТРОКА()%%))
Nicotine
Ответить
Сообщение добрый вечер. в последней Вашей формуле поиск наибольшего значения идет по колонке С, а должен по колонке Е. поправьте, если Вас не затруднит.Код
=E2+F2*СУММ(-(ЕСЛИОШИБКА(НАИБОЛЬШИЙ((C$2:C$16=C2)*(E$2:E$16-(СТОЛБЕЦ(A:I)-1)*F$2:F$16-СТРОКА($2:$16)%%);СТРОКА(ДВССЫЛ("1:"&(СУММЕСЛИ(C$2:C$16;C2;E$2:E$16)-ВПР(C2;I$2:L$16;3))/ВПР(C2;I$2:L$16;4))));)=E2-(СТОЛБЕЦ(A:I)-1)*F2-СТРОКА()%%))
Автор - Nicotine Дата добавления - 14.12.2018 в 19:28
Светлый
Дата: Пятница, 14.12.2018, 20:38 |
Сообщение № 8
Группа: Друзья
Ранг: Старожил
Сообщений: 1829
Репутация:
510
±
Замечаний:
0% ±
Excel 2013, 2016
Добрый вечер! Оформите формулу в своём сообщении тегом. Выделить и нажать fx.поиск наибольшего значения идет по колонке С, а должен по колонке Е
Где Вы это увидели? Наибольшее берётся из выражения:Код
(C$2:C$16=C2)*(E$2:E$16-(СТОЛБЕЦ(A:I)-1)*F$2:F$16-СТРОКА($2:$16)%%)
Столбец C здесь участвует только для группировки по Глобал (одинаковые). Формулу немного сократил. Это, если кратности строго одинаковые в группе Глобал и в правой таблице:Код
=E2+F2*СУММ(-(ЕСЛИОШИБКА(НАИБОЛЬШИЙ((C$2:C$16=C2)*(E$2:E$16-(СТОЛБЕЦ(A:I)-1)*F$2:F$16-СТРОКА($2:$16)%%);СТРОКА(ДВССЫЛ("1:"&(СУММЕСЛИ(C$2:C$16;C2;E$2:E$16)-ВПР(C2;I$2:L$16;3))/F2)));)=E2-СТОЛБЕЦ(A:I)*F2+F2-СТРОКА()%%))
Добрый вечер! Оформите формулу в своём сообщении тегом. Выделить и нажать fx.поиск наибольшего значения идет по колонке С, а должен по колонке Е
Где Вы это увидели? Наибольшее берётся из выражения:Код
(C$2:C$16=C2)*(E$2:E$16-(СТОЛБЕЦ(A:I)-1)*F$2:F$16-СТРОКА($2:$16)%%)
Столбец C здесь участвует только для группировки по Глобал (одинаковые). Формулу немного сократил. Это, если кратности строго одинаковые в группе Глобал и в правой таблице:Код
=E2+F2*СУММ(-(ЕСЛИОШИБКА(НАИБОЛЬШИЙ((C$2:C$16=C2)*(E$2:E$16-(СТОЛБЕЦ(A:I)-1)*F$2:F$16-СТРОКА($2:$16)%%);СТРОКА(ДВССЫЛ("1:"&(СУММЕСЛИ(C$2:C$16;C2;E$2:E$16)-ВПР(C2;I$2:L$16;3))/F2)));)=E2-СТОЛБЕЦ(A:I)*F2+F2-СТРОКА()%%))
Светлый
Программировать проще, чем писать стихи.
Ответить
Сообщение Добрый вечер! Оформите формулу в своём сообщении тегом. Выделить и нажать fx.поиск наибольшего значения идет по колонке С, а должен по колонке Е
Где Вы это увидели? Наибольшее берётся из выражения:Код
(C$2:C$16=C2)*(E$2:E$16-(СТОЛБЕЦ(A:I)-1)*F$2:F$16-СТРОКА($2:$16)%%)
Столбец C здесь участвует только для группировки по Глобал (одинаковые). Формулу немного сократил. Это, если кратности строго одинаковые в группе Глобал и в правой таблице:Код
=E2+F2*СУММ(-(ЕСЛИОШИБКА(НАИБОЛЬШИЙ((C$2:C$16=C2)*(E$2:E$16-(СТОЛБЕЦ(A:I)-1)*F$2:F$16-СТРОКА($2:$16)%%);СТРОКА(ДВССЫЛ("1:"&(СУММЕСЛИ(C$2:C$16;C2;E$2:E$16)-ВПР(C2;I$2:L$16;3))/F2)));)=E2-СТОЛБЕЦ(A:I)*F2+F2-СТРОКА()%%))
Автор - Светлый Дата добавления - 14.12.2018 в 20:38