Как создать вложенный расчет в DAX? - PullRequest
0 голосов
/ 19 апреля 2019

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

У меня нет базовых данных, из которых рассчитываются средние значения. Это для расчета колл-центра.

Каждая группа имеет несколько подтипов. Средние значения - это расчеты внутри этих подтипов. Мне нужно найти среднее для группы.

Я определил расчет, чтобы сделать это, но не знаю, как это сделать в DAX.

(
( (avg_time_a + avg_time_b) * #calls ) +    :: for Type A, Group X, Interval Y
( (avg_time_a + avg_time_b) * #calls ) +    :: for Type B, Group X, Interval Y
( (avg_time_a + avg_time_b) * #calls ) +    :: for Type C, Group X, Interval Y
( (avg_time_a + avg_time_b) * #calls ) )    :: for Type ...
/ Sum(#calls)

Я считаю, что должен использовать раньше, но я не смог понять это.

выше

    Column Labels   
    North   
Row Labels  frct calls  avg handletime
4/13/2019 20:00 52.5    295.71
4/13/2019 20:30 39.13333333 347.13
4/13/2019 21:00 44.8    164.55
4/13/2019 21:30 29.2    444.69
4/13/2019 22:00 24.3    239.43
4/13/2019 22:30 24.16666667 165.42
4/13/2019 23:00 16.26666667 549.83

Игнорировать вызовы frct. У меня есть это. Дескриптор времени, сгруппированный по интервалу (строка) и группе (столбец), является результатом, который я ищу.

Я пытался это сделать:

=CALCULATE(
           (SUM( [AverageACWTimeInSeconds])+SUM([AverageTalkTimeInSeconds]))*SUM([NumberOfInteractions]),
           ALLEXCEPT( IO_VolumeForecastStats, IO_VolumeForecastStats[IntervalStartEDT], IO_VolumeForecastStats[WorkgroupName])
  )

... однако он суммировал все avg_time_x и умножал на все вызовы вместо того, чтобы просматривать данные каждого типа навыков и обрабатывать по одному за раз.

1 Ответ

0 голосов
/ 22 апреля 2019

Я извиняюсь, что этот вопрос был таким беспорядком.

Чтобы использовать EARLIER (), мне пришлось создать ключевое поле, уникальное для каждой строки.Я сделал это с помощью CONCATENATE () Group & Type & Interval, чтобы в каждой строке было уникальное значение ключа, на которое раньше можно было ссылаться.Мне также пришлось создать его как вычисляемое поле, а не как меру.

Чтобы разрешить первую часть, мне сначала нужно было создать вычисляемое поле, которое будет рассчитывать для каждого типа ((avg_time_a + avg_time_b) *# звонки) и суммируйте их для всех типов.Для этого:

=CALCULATE(
           (SUM( [avg_time_a])+SUM([avg_time_b]))*SUM([#calls]),
           ALLEXCEPT( MyTable, MyTable[Interval], MyTable[Group]),
           FILTER( MyTable, MyTable[skill interval id]=Earlier(MyTable[skill interval id] ) )
  )

Как только у меня есть это поле с суммой, я могу разделить его на количество вызовов.

Я все еще сомневаюсь в использовании контекста строки, но продолжаю учитьсянемного за раз.

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