Рассчитайте среднесуточное значение, включая ноль в Power BI

#powerbi #dax

Вопрос:

У меня есть набор данных пациентов, посещающих несколько категорий(СПЕЦИАЛЬНОСТЕЙ) больницы. Визит длится пару часов каждый день. Каждая строка в моем наборе данных представляет собой час, в течение которого они присутствуют для определенной специализации больницы.

Ввод

Я хочу рассчитать для каждого часа дня количество пациентов, которые присутствуют в среднем по специальности, я использовал следующий код (мера):

 daggem = AVERAGEX(values('Date'[Date]),[distinctpat])
 

с distinctpat, представляющим собой отдельное количество идентификаторов пациентов

Это дает мне почти желаемый результат, но рассказы о графике слишком тяжелы (он показывает в среднем 1 пациента в течение ночи, но этот 1 пациент был там только в 1 конкретный день, обычно он равен нулю. Но в среднем, как я подсчитал, это не включает все остальные ночи, когда было ноль пациентов. Поэтому я хотел бы получить среднее значение, которое намного ниже (и более правильное)

Выход

Ответ №1:

Вам, вероятно, понадобится дополнительная таблица со всеми днями и временем. Основываясь на отчетах, вы сможете найти часы без посещений

Вот пример того, как создать таблицу дат с часами; Добавить взаимосвязь и использовать в расчетах.

 DatesWithHours = 
var Dates = CALENDAR("2021-01-01 00:00:00", "2021-01-03 00:00:00")
var DatesHour =
GENERATE(Dates, (ADDCOLUMNS(GENERATESERIES(1,12,1),"Hours", [Date]   TIME([Value],0,0))))
return
DatesHour
 

Ответ №2:

В этом проблема с AVERAGEX, он игнорирует пробелы. Попробуйте вместо этого простое деление.

 daggem =
DIVIDE (
    COUNTROWS ( TargetTable ),
    COUNTROWS ( Dates )
)