12 Replies Latest reply: Nov 30, 2015 6:46 AM by Roman Ergakov RSS

    Суммирование значений факта в коридоре Avg+/-3*Stdev

      Всем привет!

       

      Столкнулся со следующей задачей - необходимо получить сумму всех продаж (факт Нетто), которые отличаются от среднего значения продажи не более чем на 3 сигмы, отличающиеся необходимо включить в сумму обрезав/дополнив до соответствующей границы коридора.

       

      Отдельные поля со средним значением (avg), сигмой (stdev), верхней (avg+3stdev) и нижней (avg-3stdev) границами коридора, минимальным (min) и максимальным (max) значениями продажи считаются "на ура" для кода клиента и кода материала. А вот попытка в одном поле получить сумму по условию коридора продажи (с проверкой на попадание суммируемого значения в коридор) - не увенчиваются успехом. Либо Клик ругается на границу интервала в условии, либо просто ее игнорирует.

       

      Следующая запись отображает коммент "Error in Expression":

       

      =sum(if(Нетто > avg(Нетто)+3*Stdev(Нетто),

                  avg(Нетто)+3*Stdev(Нетто),

                  if(Нетто < avg(Нетто)-3*Stdev(Нетто),

                     avg(Нетто)-3*Stdev(Нетто),

                     Нетто

                     )

                 )

             )

       

      Добавление идентификатора total решает проблему ошибки в выражении, но не решает исходной задачи:

      =sum(if(Нетто > avg(total Нетто)+3*Stdev(total Нетто),

                  avg(total Нетто)+3*Stdev(total Нетто),

                  if(Нетто < avg(total Нетто)-3*Stdev(total Нетто),

                     avg(total Нетто)-3*Stdev(total Нетто),

                     Нетто

                     )

                 )

             )

       

      Решение работает лишь для зафиксированного в selection клиента и материала (то есть для одной строки таблицы). При отсутствии выделения в каждой строке таблицы (для клиента и материала) отображаются полные суммы продаж.

       

      Заранее благодарен за идеи.

       

      С уважением,

      Роман.