Уважаемые участники форума, Вы меня уже не раз выручали, и вот мне опять необходима Ваша помощь. Задача решена, но лишь наполовину. Очень нуждаюсь в помощи дописать имеющийся макрос, либо написать новый, если кому не лень ))).
Итак, на лист «Cust service request» вставляется выгрузка с артикулами и кол-вом товара.
На лист «Invoice» переносятся эти данные и лукапятся дополнительные данные – характеристики с листа «Articles» и цены с листа «Prices». На листе «Result» после запуска макроса появляется результат обработки.
А теперь сама суть обработки:
1) если в заказе присутствуют одновременно товары с «type of products2» - zx, zс, zv, zb и одинаковой «Series» (!!!), то к этим артикулам применяется скидка 3%. Исключение – серия «vic», к ней применяется скидка 2%. При этом артикул с «type of products2» - zvzb = zv +zb, т.е. вместо двух типов zv и zb может быть type of products2» - zvzb.
Аналогия: чтобы получить скидку клиент должен купить – стол (zv), стул (zc), полку (zx) и тумбу (zb). Но он может купить полку (zx), стул (zc) и стол со встроенной тумбой (zvzb). Т.е. набор фактически из тех же 4 предметов и скидка тоже будет действовать (не забываем про одну и ту же серию).
2) При этом применяется принцип минимальности количества и цен. Если в заказе:
* 5 столов со встроенной тумбой по цене 100 (zvzb)
* 3 стола по цене 60 (zv)
* 6 стульев по цене 40 (zc)
* 1 стул по цене 30 (zc)
* 6 полок по цене 10 (zx)
* 4 тумб по цене 50 (zb)
* 1 тумба по цене 45 (zb)
Max(zx) = 6, max(zc) = 6+1 =7, max(zv) = 3+zvzb = 8, max(zb) = 4+1+5 = 10. MIN = 6
Результат после макроса:
zx = 6 шт по цене 10
zc = 1 шт по цене 30 и 5 шт по 40
zvzb = 3 шт по 100
zv = 3 шт по 60
zc = 1 по 45 и 2шт по 50
zvzb имеет приоритет, так как всегда(!!!) цена встроенного комплекта меньше, чем сумма цен деталей по отдельности.
Все, что было описано выше, уже сделано и работает в макросе (за исключением серии «vic», скидка 2% ставится формулой, а не макросом (на листе Results).
Что необходимо:
1)если в заказе выполняется условие комплектности (type of products2) и присутствует артикул той же серии с type “of products1” = tap, то скидка должна быть 5% вместо 3%, а для серии vic 4% вместо 3%. При этом артикул с типом1=taps так же включается в результат c такой же скидкой
2)Для серий «front» и «elem» отсутствует type of products2 = zx. Таким образом для них идет скидка 10%, если есть комплект из zc,zv,zvzb. (tap не влияет, даже если присутствует
3)Сейчас в макросе идет расчет для любого бренда. Хотелось бы ограничить только для бренда «qwerty». Но это не важная часть, т.к. если остальные бренды убрать с листов articles и prices, то в invoice буду #N/D, которые макрос в расчет не примет или их можно удалить из расчета
Файл с макросом и результатом одного заказа в приложении. На листе results нарисовал табличку как должно быть в столбцах с L по T.
Спасибо за внимание.
Итак, на лист «Cust service request» вставляется выгрузка с артикулами и кол-вом товара.
На лист «Invoice» переносятся эти данные и лукапятся дополнительные данные – характеристики с листа «Articles» и цены с листа «Prices». На листе «Result» после запуска макроса появляется результат обработки.
А теперь сама суть обработки:
1) если в заказе присутствуют одновременно товары с «type of products2» - zx, zс, zv, zb и одинаковой «Series» (!!!), то к этим артикулам применяется скидка 3%. Исключение – серия «vic», к ней применяется скидка 2%. При этом артикул с «type of products2» - zvzb = zv +zb, т.е. вместо двух типов zv и zb может быть type of products2» - zvzb.
Аналогия: чтобы получить скидку клиент должен купить – стол (zv), стул (zc), полку (zx) и тумбу (zb). Но он может купить полку (zx), стул (zc) и стол со встроенной тумбой (zvzb). Т.е. набор фактически из тех же 4 предметов и скидка тоже будет действовать (не забываем про одну и ту же серию).
2) При этом применяется принцип минимальности количества и цен. Если в заказе:
* 5 столов со встроенной тумбой по цене 100 (zvzb)
* 3 стола по цене 60 (zv)
* 6 стульев по цене 40 (zc)
* 1 стул по цене 30 (zc)
* 6 полок по цене 10 (zx)
* 4 тумб по цене 50 (zb)
* 1 тумба по цене 45 (zb)
Max(zx) = 6, max(zc) = 6+1 =7, max(zv) = 3+zvzb = 8, max(zb) = 4+1+5 = 10. MIN = 6
Результат после макроса:
zx = 6 шт по цене 10
zc = 1 шт по цене 30 и 5 шт по 40
zvzb = 3 шт по 100
zv = 3 шт по 60
zc = 1 по 45 и 2шт по 50
zvzb имеет приоритет, так как всегда(!!!) цена встроенного комплекта меньше, чем сумма цен деталей по отдельности.
Все, что было описано выше, уже сделано и работает в макросе (за исключением серии «vic», скидка 2% ставится формулой, а не макросом (на листе Results).
Что необходимо:
1)если в заказе выполняется условие комплектности (type of products2) и присутствует артикул той же серии с type “of products1” = tap, то скидка должна быть 5% вместо 3%, а для серии vic 4% вместо 3%. При этом артикул с типом1=taps так же включается в результат c такой же скидкой
2)Для серий «front» и «elem» отсутствует type of products2 = zx. Таким образом для них идет скидка 10%, если есть комплект из zc,zv,zvzb. (tap не влияет, даже если присутствует
3)Сейчас в макросе идет расчет для любого бренда. Хотелось бы ограничить только для бренда «qwerty». Но это не важная часть, т.к. если остальные бренды убрать с листов articles и prices, то в invoice буду #N/D, которые макрос в расчет не примет или их можно удалить из расчета
Файл с макросом и результатом одного заказа в приложении. На листе results нарисовал табличку как должно быть в столбцах с L по T.
Спасибо за внимание.