ВЫБРАННОЕ значение из среза без фильтрации результатов предыдущего месяца

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

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

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

Например, ЕСЛИ в мае у меня было 60 отдельных случаев, а мои средние ежедневные случаи за май составляют 2 случая в день. Я хочу рассчитать то же самое для предыдущего месяца, когда выбираю месяц в фильтре.

Здесь я выбрал май-2021. Я хочу, чтобы моя мера рассчитывала среднее ежедневное число случаев за апрель 2021 г.

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

Итак, я создал две меры: одну для выбранного месяца, а другую - для предыдущих среднесуточных случаев.

Avg Daily Cases =
VAR Selected_Month =
SELECTEDVALUE ( 'Date'[MMM-YYYY] )
VAR Month_Days =
CALCULATETABLE (
VALUES ( 'Date'[DateAsInteger] ),
FILTER ( 'Date', 'Date'[MMM-YYYY] = Selected_Month )
)
RETURN
CALCULATE (
AVERAGEX ( Month_Days, CALCULATE ( DISTINCTCOUNT ( MyTable[CaseNo] ) ) )
)

Среднее ежедневное число наблюдений за предыдущий месяц

Avg Daily Cases Prev Month =
VAR Selected_Month =
SELECTEDVALUE ( 'Date'[MMM-YYYY] )
VAR Last_Month_Days =
CALCULATETABLE (
VALUES ( 'Date'[DateAsInteger] ),
FILTER (
'Date',
MONTH ( 'Date'[Date] )
= MONTH ( Selected_Month ) - 1
&& 'Date'[Year] = YEAR ( Selected_Month )
)
)
RETURN
CALCULATE (
AVERAGEX ( Last_Month_Days, CALCULATE ( DISTINCTCOUNT ( MyTable[CaseNo] ) ) )
)

Средние ежедневные наблюдения работают нормально и дают ожидаемые результаты, однако средние ежедневные случаи за предыдущий месяц не работают.


person Rahul    schedule 06.06.2021    source источник
comment
Что вы имеете в виду, что Avg Daily Cases Prev не работает? Вы получаете сообщение об ошибке? Вывод неверен? Попробуйте отладить свою переменную Last_Month_Days (например, добавьте новую таблицу из своего кода и проверьте, что вы получаете).   -  person msta42a    schedule 07.06.2021
comment
@ msta42a проблема заключалась в контексте фильтра за предыдущий месяц. Поскольку вы выполняете фильтрацию в мае 2021 года, в предыдущем месяце не удалось получить данные за предыдущий месяц.   -  person Rahul    schedule 07.06.2021
comment
затем измените FILTER ('Date' на: FILTER (ALL ('Date'). ALL здесь ключевое слово, чтобы удалить любой контекстный фильтр из DATE   -  person msta42a    schedule 07.06.2021


Ответы (1)


Предположим, у вас есть общий случай 30 в мае и 60 в июне, и у вас есть следующий набор данных, чтобы вернуть сравнение для двух с использованием одного выбора и принять ответ, если это поможет :)

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

Сначала я создал следующую таблицу для выбора

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

Средний случай за текущий период

Current daily case = 
var caseTotal = CALCULATE(DISTINCTCOUNT(Sheet1[Case]),
                    FILTER(Sheet1,Sheet1[Period] in {SELECTEDVALUE(Selection[Selection])}))
return
caseTotal / DAY(EOMONTH(SELECTEDVALUE(Selection[Selection]),0))

Предыдущее сравнение

Prior daily case = 
var caseTotal = CALCULATE(DISTINCTCOUNT(Sheet1[Case]),
                    FILTER(Sheet1,Sheet1[Period] in {FORMAT(EDATE(SELECTEDVALUE(Selection[Selection]),-1),"mmm-yyyy")}))
return
caseTotal / DAY(EOMONTH(EDATE(SELECTEDVALUE(Selection[Selection]),-1),0))

Результат:

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

person Kin Siang    schedule 07.06.2021
comment
Примите ответ, если решите свою проблему :) - person Kin Siang; 09.06.2021