Рассчитать% на основе комбинации подсчета и сохраненных значений - Power BI - PullRequest
0 голосов
/ 30 октября 2018

У меня есть базовая таблица, которая выглядит так:

 DayNo. Customer    AgentsInvolved  CallID
   0      AAA              1        1858
   0      AAA              3        1859
   2      AAA              1        1860
   0      BBB              2        1862
   0      CCC              1        1863
   0      DDD              3        1864
   9      DDD              1        1865
   9      DDD              4        1866

Мне нужно найти процент клиентов, которые связывались только один раз и разговаривали только с одним агентом. Таким образом, из приведенного выше примера, из 4 различных клиентов только КТС клиента попадает в эту категорию (1 вызов, 1 AgentInvolved)

Таким образом, желаемый результат будет: 1/4 или 25%

Как мне создать показатель Power BI для этого расчета?

Ответы [ 3 ]

0 голосов
/ 30 октября 2018

Вот еще один подход:

Measure = 
SUMX(
    VALUES(Table2[Customer]),
    CALCULATE(
        IF(
            DISTINCTCOUNT(Table2[CallID]) = 1 &&
              SUM(Table2[AgentsInvolved]) = 1,
            1,
            0
        ),
    Table2[DayNo.] = 0
    )
) /
DISTINCTCOUNT(Table2[Customer])

Если вы также хотите исключить строки 0 дней в знаменателе, замените последнюю строку на

CALCULATE(DISTINCTCOUNT(Table2[Customer]), Table2[DayNo.] = 0)
0 голосов
/ 31 октября 2018
Desired Result =
       VAR summarizetable = 
           SUMMARIZECOLUMNS (
               'table'[AgentsInvolved],
               'table'[DayNo.],
               'table'[Customer],
               "Calls", COUNT ( 'table'[CallID] )
        )
       )
    RETURN
COUNTROWS (
    FILTER ( summarizetable, [Calls] = 1 && 'table'[AgentsInvolved] = 1 && 'table'[DayNo.] = 0 )
) / DISTINCTCOUNT ( 'table'[Customer])
0 голосов
/ 30 октября 2018

Попробуйте эту меру:

Desired Result =
VAR summarizetable =
    SUMMARIZECOLUMNS (
        'table'[Customer],
        "Calls", COUNT ( 'table'[CallID] ),
        "Agents", SUM ( 'table'[AgentsInvolved] ),
        "Day", SUM ( 'table'[DayNo.] )
    )
RETURN
    COUNTROWS (
        FILTER ( summarizetable, [Calls] = 1 && [Agents] = 1 && [Day] = 0 )
    )
        / COUNTROWS ( summarizetable )

Сводная таблица, созданная на лету в VAR summarizetable, выглядит следующим образом:

enter image description here

...