Microsoft Power BI - DAX 时间智能测量 - 更改上下文以反映适当的百分比变化;非年初至今措施
Microsoft Power BI - DAX Time Intelligence measure - change context to reflect proper % change; non-YTD measures
我有一个 Power BI 视觉对象,如下所示。有3个矩阵。我有一个名为 Dates2.
的 DateDimension(或)日历 table
我使用了两种措施,一种是常规措施(称为'Count'),另一种是措施的平行时期比较(称为'Count_PreviousYear')。我对后者使用 SAMEPERIODLASTYEAR DAX 函数。
1)
Count = COUNTA(TableX[ColumnY])
--测量名称'Count'--
2)
Count_PreviousYear = CALCULATE
(
[Count],
SAMEPERIODLASTYEAR(Dates2[Date])
)
--测量名称'Count_PreviousYear'
--此度量使用时间智能函数 - SAMEPERIODLASTYEAR--
'Count' 和 'Count_PreviousYear'(显然)都是 不是 YTD(YearToDate)值。
跨时期百分比变化的第三个度量计算如下:
3)
PercentageChange = IF(
ISBLANK([Count]) || ISBLANK([Count_PreviousYear]),
BLANK(),
(([Count] - [Count_PreviousYear])/[Count])
)
请忽略关键字用作度量名称;
我使用名称 'Count' 只是为了清楚起见;在我的实际报告中,
我有专有名词
百分比变化度量工作正常,但有一个问题:
对于从 2020 年到 2021 年的周期变化,即在最后一个矩阵的第三行(对于行值 2021),总计(即百分比变化值)不合适。
我需要将 -737.21% 替换为 - 23.98%。
这是因为,我需要计算 2020 年的总数,只需将 1 月和 2 月的值相加,即 428 + 430 = 858。(不是 5794,它适用于所有 12 个月) .
由于2021年只有两个月-一月和二月,我不想将2021年的两个月与2020年的所有12个月进行比较。相反,我想将2021年的两个月与相应的两个月进行比较2020 年第 2 个月。
基本上我需要 {(692-858)/692} * 100 = -23.98%
目前,我看到 {(692-5794)/692} * 100 = -737.21%
有人可以帮我实现这个吗?
Count Previous Year =
IF (
HASONEVALUE ( Dates2[Month] ),
IF (
[Count] <> BLANK (),
CALCULATE ( [Count], SAMEPERIODLASTYEAR ( Dates2[Date] ) )
),
IF (
HASONEVALUE ( Dates2[Year] ),
CALCULATE (
[Count],
DATESBETWEEN (
Dates2[Date],
EDATE ( MIN ( Dates2[Date] ), -12 ),
EOMONTH ( MAX ( [FactTable[Date] ), -12 )
)
)
)
)
Count_PreviousYear = 如果(
(HASONEVALUE(Dates2[Year]) = TRUE && HASONEVALUE(Dates2[MonthName]) = TRUE),
CALCULATE
(
[Count],
SAMEPERIODLASTYEAR(Dates2[Date])
),
IF (
(HASONEVALUE(Dates2[Year]) = TRUE && HASONEVALUE(Dates2[MonthName]) = FALSE),
CALCULATE (
[Count],
DATESBETWEEN (
Dates2[Date],
EDATE (MIN(Dates2[Date]), -12),
EOMONTH (MAX(SourceData[Date]), -12)
)
),
BLANK()
)
)
!Output obtained as desired]1
我有一个 Power BI 视觉对象,如下所示。有3个矩阵。我有一个名为 Dates2.
的 DateDimension(或)日历 table我使用了两种措施,一种是常规措施(称为'Count'),另一种是措施的平行时期比较(称为'Count_PreviousYear')。我对后者使用 SAMEPERIODLASTYEAR DAX 函数。
1)
Count = COUNTA(TableX[ColumnY])
--测量名称'Count'--
2)
Count_PreviousYear = CALCULATE
(
[Count],
SAMEPERIODLASTYEAR(Dates2[Date])
)
--测量名称'Count_PreviousYear'
--此度量使用时间智能函数 - SAMEPERIODLASTYEAR--
'Count' 和 'Count_PreviousYear'(显然)都是 不是 YTD(YearToDate)值。
跨时期百分比变化的第三个度量计算如下:
3)
PercentageChange = IF(
ISBLANK([Count]) || ISBLANK([Count_PreviousYear]),
BLANK(),
(([Count] - [Count_PreviousYear])/[Count])
)
请忽略关键字用作度量名称; 我使用名称 'Count' 只是为了清楚起见;在我的实际报告中, 我有专有名词
百分比变化度量工作正常,但有一个问题:
对于从 2020 年到 2021 年的周期变化,即在最后一个矩阵的第三行(对于行值 2021),总计(即百分比变化值)不合适。
我需要将 -737.21% 替换为 - 23.98%。
这是因为,我需要计算 2020 年的总数,只需将 1 月和 2 月的值相加,即 428 + 430 = 858。(不是 5794,它适用于所有 12 个月) .
由于2021年只有两个月-一月和二月,我不想将2021年的两个月与2020年的所有12个月进行比较。相反,我想将2021年的两个月与相应的两个月进行比较2020 年第 2 个月。
基本上我需要 {(692-858)/692} * 100 = -23.98%
目前,我看到 {(692-5794)/692} * 100 = -737.21%
有人可以帮我实现这个吗?
Count Previous Year =
IF (
HASONEVALUE ( Dates2[Month] ),
IF (
[Count] <> BLANK (),
CALCULATE ( [Count], SAMEPERIODLASTYEAR ( Dates2[Date] ) )
),
IF (
HASONEVALUE ( Dates2[Year] ),
CALCULATE (
[Count],
DATESBETWEEN (
Dates2[Date],
EDATE ( MIN ( Dates2[Date] ), -12 ),
EOMONTH ( MAX ( [FactTable[Date] ), -12 )
)
)
)
)
Count_PreviousYear = 如果(
(HASONEVALUE(Dates2[Year]) = TRUE && HASONEVALUE(Dates2[MonthName]) = TRUE),
CALCULATE
(
[Count],
SAMEPERIODLASTYEAR(Dates2[Date])
),
IF (
(HASONEVALUE(Dates2[Year]) = TRUE && HASONEVALUE(Dates2[MonthName]) = FALSE),
CALCULATE (
[Count],
DATESBETWEEN (
Dates2[Date],
EDATE (MIN(Dates2[Date]), -12),
EOMONTH (MAX(SourceData[Date]), -12)
)
),
BLANK()
)
)
!Output obtained as desired]1