Количество продуктов, в которых сумма продаж для конкретного продукта превышает 2% от общего объема продаж - Power BI - DAX Measure - PullRequest
2 голосов
/ 20 апреля 2020

У меня есть таблицы фактов с продажами

enter image description here

Я хотел бы создать показатель, который подсчитывает количество продуктов, где сумма продаж для определенного продукта выше чем 2% от общего объема продаж. Например: 1. сумма продаж для «ProductKey» 310 составляет 5000. 2. сумма продаж для «ProductKey» 346 составляет 2000. 3. 2% от общей суммы продаж составляет 3000. Продукт 310 будет включен в подсчет продукта 346 не будет включен в счет. Как бы я написал такую ​​меру? Я пытался создать что-то вроде этого:

Big Sales =  
var SalesTotal = CALCULATE(SUM(fact_InternetSales[SalesAmount]))    
var twoperceSalesAmount =
CALCULATE (SUM(fact_InternetSales[SalesAmount]), ALL( fact_InternetSales )) * 0.02
return
CALCULATE (COUNT(fact_InternetSales[ProductKey]),
FILTER (fact_InternetSales, SalesTotal - twoperceSalesAmount > 0))

Thansk

С уважением, Роберт

Ответы [ 2 ]

1 голос
/ 20 апреля 2020

Вы были почти там.

Псевдоалгоритм:
1. Рассчитать порог
2. Рассмотреть только товар с продажами выше порога
3. Подсчитать количество товаров

        Big Sales:=
        var _threshold = CALCULATE(SUM(fact_InternetSales[SalesAmount]),ALL(fact_InternetSales))*0.02
        var _productlist =
        FILTER(ADDCOLUMNS(
        SUMMARIZE(
        fact_InternetSales,
    fact_InternetSales[ProductKey),
"productsales",CALCULATE(SUM(fact_InternetSales[SalesAmount]))),
        [productsales]>_threshold)
        RETURN
        Countrows(_productlist)   

Если это очень медленный веб может оптимизировать его.

0 голосов
/ 01 мая 2020

Также работает решение с SUMX:

Big Sales SUMX = 
SUMX(VALUES(fact_InternetSales[ProductKey]),
IF(CALCULATE(SUM(fact_InternetSales[SalesAmount]))> 
CALCULATE(SUM(fact_InternetSales[SalesAmount]),ALL(fact_InternetSales))*0.02,1))
...