DAX: средние значения в день - PullRequest
0 голосов
/ 11 октября 2018

У меня есть несколько категорий в течение нескольких дней.Одна и та же категория может встречаться несколько раз в одну и ту же дату.Как получить среднее количество отдельных категорий в день?

Набор данных:

Date,Category
11.10.2018,A
11.10.2018,B
11.10.2018,C
12.10.2018,A
12.10.2018,A
12.10.2018,A
13.10.2018,B
13.10.2018,B

Таблица из представления данных:

enter image description here

Визуализация таблицы:

enter image description here

Моя попытка:

Я могу получать различные значения в день как меру, используя dist = CALCULATE(DISTINCTCOUNT(Table1[Category]);DISTINCT(Table1[Date]))

enter image description here

Итак, в итоге я бы хотел получить среднее значение dist в приведенной выше таблице, равное 1.67.Но как ты это делаешь?Я пробовал разные комбинации с AVERAGE, AVAREGEX, VALUES и CALCULATE, но безуспешно.И чем больше я стараюсь, тем больше убеждаю себя, что DAX бесполезен (хотя я знаю, что в глубине души этого не может быть).Спасибо за любые предложения!

1 Ответ

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

Используйте SUMMARIZE для расчета отдельного числа для каждой даты, затем вы можете использовать AVERAGEX для итерации по каждому значению даты:

dist:= 
IF ( 
    HASONEFILTER ( Table1[Date] ), 
    DISTINCTCOUNT ( Table1[Category] ), 
    AVERAGEX ( 
        SUMMARIZE ( 
            Table1, 
            Table1[Date],
            "Daily Average", DISTINCTCOUNT ( Table1[Category] )
        ),
        [Daily Average]
    )
)

РЕДАКТИРОВАТЬ: вам действительно не нужно IF функция - кажется, она работает так же хорошо, используя просто:

dist:= 
AVERAGEX ( 
    SUMMARIZE ( 
        Table1, 
        Table1[Date],
        "Daily Average", DISTINCTCOUNT ( Table1[Category] )
    ),
    [Daily Average]
)
...