Как мне получить общий процент по подкатегориям и диапазону распределения с учетом фильтра YearMonth в DAX? - PullRequest
0 голосов
/ 05 августа 2020

Я пытаюсь получить общий процент с помощью меры DAX, но в итоге получаю процентную разбивку только по диапазону и подкатегориям, оно не будет показывать 100% -ное распределение вместе с подкатегорией и диапазонами.

У меня есть данные в табличный куб, подобный этому, с общим количеством по подкатегориям на основе клиентов,

YearMonth   PercentRange    SubCategory     TotalCount
202005      1%-19.99%       Sub1            280
202005      1%-19.99%       Sub2            280
202005      20%-39.99%      Sub1            52
202005      20%-39.99%      Sub2            270

Ожидаемые результаты,

YearMonth   PercentRange    Sub1    Measure Sub2 Measure
202005      20%-39.99%      280     84%     280  60%
202005      1%-19.99%       52      16%     270  40%
Grand Total                 320     100%    550  100%

DAX Я пробовал. Этот DAX дает результат, если я использую только 202005, но не t работает, если я добавлю еще один месяц: (

IF (
    ISFILTERED (TableA[PercentRange]),
    [Head Count]
    /
    CALCULATE (
             [Head Count],
            ALL( TableA[PercentRange]) -- I could use some logic here to get subtotal for Subcategory
    )
)

Спасибо за помощь !!

Ответы [ 2 ]

0 голосов
/ 09 августа 2020

Давайте сделаем все в одном go, используя настраиваемую таблицу и GROUP BY. Создайте «Новую таблицу» с приведенным ниже кодом, нажав кнопку, показанную на изображении ниже -

enter image description here

Now just paste this following code in the script section-

Considered your base table name = percentage_subcategory. Please change the table name reference accordingly.

group_by_sub_category = 
VAR sub_category_wise_total = 
GROUPBY (  
    percentage_subcategory,
    percentage_subcategory[YearMonth],
    percentage_subcategory[PercentRange],
    "sum_sub1",
        SUMX(
            CURRENTGROUP()
            , 
            IF(
                percentage_subcategory[SubCategory] = "Sub1",
                percentage_subcategory[TotalCount],
                BLANK()
            )
        )
    ,
    "sum_sub2",
        SUMX(
            CURRENTGROUP()
            , 
            IF(
                percentage_subcategory[SubCategory] = "Sub2",
                percentage_subcategory[TotalCount],
                BLANK()
            )
        )
    ,
    "sum_total_count", SUMX(CURRENTGROUP(), percentage_subcategory[TotalCount])
) 

RETURN
SELECTCOLUMNS (
    sub_category_wise_total,
    "YearMonth",percentage_subcategory[YearMonth],
    "PercentRange",percentage_subcategory[PercentRange],
    "sum_sub1",[sum_sub1],
    "sum_sub2",[sum_sub2],
    "sum_total_count", [sum_total_count],
    "sub1_percentage",([sum_sub1]/[sum_total_count]),
    "sub2_percentage",([sum_sub2]/[sum_total_count]) 
)

Now you have a new table in the report source with name "group_by_sub_category". Just change the data type of column "sub1_percentage" & "sub2_percentage" to Percentage by selecting both columns and click on the % sign in the top menu as shown in the below image-

введите описание изображения здесь

0 голосов
/ 09 августа 2020

ты все еще застрял? Вы должны попробовать использовать SELECTEDVALUE с FILTER, например:

SubCateg% = [SumTotalCount] / CALCULATE([SumTotalCount];
FILTER(ALL(TableA);
TableA[SubCategory]=SELECTEDVALUE(TableA[SubCategory])))

Таким образом, процент всегда будет подсчитываться по подкатегориям.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...