Страницы: 1
RSS
DAX. Накопительный итог, дописать формулу
 
Друзья, добрый день!
Вновь возвращаюсь к этой теме, ранее писал тут, вот здесь на первый взгляд нашел решение, но оно не оптимально.
Суть в том что МЕРЫ, которые указаны в решении, считаются без контекста фильтра сводной таблицы, а мне нужно, чтобы итог накапливался по контексту сводника, а именно по общей сумме по товару. (Когда позиция в таблице уникальна считает как нужно)
Код
Мера 1:=CALCULATE(
   SUMX('Таблица2'; [продажи] );
   FILTER(  
      ALL('Таблица2') ;
      SUMX( 
         FILTER( 
            'Таблица2'; 
            EARLIER('Таблица2'[продажи] ) >= 'Таблица2'[продажи]); 
         'Таблица2'[продажи]
      )
   )
)
Пример во вложении.
Заранее спасибо.
Изменено: OblivionR - 14.02.2020 14:31:06
 
Цитата
OblivionR написал:
считаются без контекста фильтра сводной таблицы
как бы...Логично, ибо ALL
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Да, это я понимаю, но без all никакого суммирования не происходит, в примере оставил его, чтобы было нагляднее.
 
Цитата
OblivionR написал:
мне нужно, чтобы итог накапливался по контексту сводника, а именно по общей сумме по товару.
Вместо ALL используйте ALLEXCEPT. Можете по форуму поискать, здесь решения на этой функции часто предлагались.
Вот горшок пустой, он предмет простой...
 
да и так я тоже пробовал..значения в мере равно сумме по группе(
 
Вам нужно правильно задать правило фильтрации. В текущем виде, вы по сути сортируете таблицу по убыванию продаж независимо от товара и начинаете суммировать сверху вниз. Поэтому и результат такой.
Вот горшок пустой, он предмет простой...
 
PooHkrd, не, там в текущем виде просто идет расчет изначальной таблицы, где по товар4 1 запись сумма=800, а по товар1 3 записи на общую сумму=879, но в строках таблицы все суммы меньше 800. А ТС ожидает, что сначала будет рассчитана тотал сумма по товару, а потом будет рассчитываться накопительный итог.
 
Цитата
StepanWolkoff написал:
А ТС ожидает, что сначала будет рассчитана тотал сумма по товару, а потом будет рассчитываться накопительный итог.
Именно.
Цитата
StepanWolkoff написал:
де по товар4 1 запись сумма=800, а по товар1 3 записи на общую сумму=879, но в строках таблицы все суммы меньше 800
и вот эта проблема мне тоже ясна, а как прописать формулу - вопрос
 
StepanWolkoff, я ж вроде про то же самое написал, только другими словами. Ну, если не понятно пишу, извините.
Вот горшок пустой, он предмет простой...
 
Цитата
PooHkrd написал:
о убыванию продаж независимо от товара и начинаете суммировать сверху вниз
А как это реализовать, нужно вирт таблицу делать? Как вот фильтровать итоговую сумму? (Извините, если слишком много хочу))
 
1. Лучше всего создать справочник товаров.
2. Создать простую меру суммы продаж = SUM('Таблица'[продажи])
3. Создать меру с накопительным итогом
Код
Сумма накопительная :=
VAR _sum = [Сумма]
RETURN
    CALCULATE (
        [Сумма];
        FILTER (
            ADDCOLUMNS ( ALLSELECTED ( 'Товары'[Товар] ); "summa"; [Сумма] );
            [summa] >= _sum
        )
    )
 
StepanWolkoff, Здорово! Отличное решение, все работает, низкий поклон
 
StepanWolkoff, здравствуйте. Надеюсь на помощь.
Подскажите, пожалуйста, как в вашем варианте мне сослаться на столбец посчитанный мерой?
Код
Доля:=SUM('ТАБЛИЦА'[ПРОДАЖИ])/[Сумма продаж]
т.е. как мне сделать накопительный итог только не по физическому столбцу, а по столбцу меры в своднике?
Спасибо.
Страницы: 1
Наверх