Сложная формула расчета стоимости дополнительной услуги

Рассмотрим реальный пример применения сложной формулы для расчета стоимости дополнительных услуг в программе расчета заказов печати Sevit Print Shop Manager.

Формула расчета стоимости подрамника и натяжки холста.

Шаги необходимые для добавления формулы показаны в примере простого расчета, в данном примере рассматривается только формула.

Изначально расчет велся в Excel :

После того для как расчета услуги натяжки на подрамник была использована программа для расчетов заказов на печать Sevit Print Shop Manager натяжка была оформлена как дополнительная услуга. Формула расчета стоимости услуги в программе выглядит так (расчет был слегка изменен по сравнению с исходным):

(360*%SQUARE_PER_ITEM%)+40+
IF(%ONE_PERM%<=3,
    90*(%ONE_PERM%+%SMALL_SIDEM%)+20+80,
            IF(%ONE_PERM%<=4,
                111*(%ONE_PERM%+%SMALL_SIDEM%)+90+100,
                IF(%ONE_PERM%<=6,
                     126*(%BIG_SIDEM%*3+%SMALL_SIDEM%*3)+90+120,
                     126*(%BIG_SIDEM%*3+%SMALL_SIDEM%*4)+90+130
                    )
            )
)

Формула с расшифровкой переменных:

(360*"Площадь одной копии")+40+
IF("Периметр 1 экз. индив. заказа в метрах"<=3,
    90*("Периметр 1 экз. индив. заказа в метрах"+"Размер меньшей стороны в метрах")+20+80,
            IF("Периметр 1 экз. индив. заказа в метрах"<=4,
                111*("Периметр 1 экз. индив. заказа в метрах"+"Размер меньшей стороны в метрах")+90+100,
                IF("Периметр 1 экз. индив. заказа в метрах"<=6,
                     126*("Размер большей стороны в метрах"*3+"Размер меньшей стороны в метрах"*3)+90+120,
                     126*("Размер большей стороны в метрах"*3+"Размер меньшей стороны в метрах"*4)+90+130
                    )
            )
)

IF(<условие>,<значение1>,<значение2>) – функция-условие ЕСЛИ. Возвращает <значние1> если <условие> верно или <значение2> в противном случае.

К примеру вот эта часть формулы:

 IF(%ONE_PERM%<=6,
                     126*(%BIG_SIDEM%*3+%SMALL_SIDEM%*3)+90+120,
                     126*(%BIG_SIDEM%*3+%SMALL_SIDEM%*4)+90+130
                    )

IF("Периметр 1 экз. индив. заказа в метрах"<=6,
                     126*("Размер большей стороны в метрах"*3+"Размер меньшей стороны в метрах"*3)+90+120,
                     126*("Размер большей стороны в метрах"*3+"Размер меньшей стороны в метрах"*4)+90+130
                    )

Означает следующее:

Если «Периметр 1 экз. индив. заказа в метрах» меньше или равен 6, то расcчитывать как 126*(«Размер большей стороны в метрах»*3+»Размер меньшей стороны в метрах»*3)+90+120, иначе расcчитывать как  126*(«Размер большей стороны в метрах»*3+»Размер меньшей стороны в метрах»*4)+90+130

Стоит обратить внимание что в данном случае клиент не посчитал нужным оформить суммы 90, 100 и пр. как переменные (условия расчета), а ввел их как постоянные значения. Это ограничило возможности клиента — в момент расчета заказа нет возможности изменить эти цифры. Использование изменяемых условий расчета (переменных) дает такую возможность.


Top