Недавно, в поисках решения динамической классификации ABC, я нашел учебное пособие по https://www.daxpatterns.com/abc-classification-dynamic/.. Оно состоит из 4 мер:
Сумма продаж: =
SUM ('Sales' [SalesAmount])
MinLowerBoundary: =
MIN ('Classifications' [LowerBoundary])
MaxUpperBoundary: =
MAX ('Classifications' [UpperBoundary])
введите описание изображения здесь
Объем продаж ABC : =
CALCULATE (
[Sales Amount],
VALUES ('Products' [ProductCode]),
FILTER (
CALCULATETABLE (
ADDCOLUMNS (
ADDCOLUMNS (
VALUES ('Products' [ProductCode]),
"OuterValue", [Sales Amount]
),
"CumulatedSalesPercentage", DIVIDE (
SUMX (
FILTER (
ADDCOLUMNS (
VALUES ('Products' [ProductCode]),
"InnerValue", [Sales Amount]
),
[InnerValue]> = [OuterValue]
),
[InnerValue]
),
CALCULATE (
[Sales Amount],
VALUES ('Products' [ProductCode])
)
)
),
ALL ('Products')
),
[CumulatedSalesPercentage]> [MinLowerBoundary]
&& [CumulatedSalesPercentage] <= [MaxUpperBoundary]
)
)
Мера [Объем продаж ABC] работает правильно для набора данных, в котором зарегистрировано 3000 продуктов x 375000 проданных товаров, но в наборе данных с 11000 продуктов x 230000 он становится очень медленным.
Я считаю, что медлительность связана с количеством продукта для количества продаж.Однако нет возможности уменьшить количество продуктов.Любые предложения по решению медлительности?