表格 2016 - DAX 度量:如何引用聚合的计算别名
Tabular 2016 - DAX measure: How to reference a calculation alias for aggregation
我想要每个日期的到期日期大于当前上下文日期的所有值的总和。
代码:
EVALUATE(
VAR v = ADDCOLUMNS(
FILTER(
SUMMARIZE(
'Dates Expiry',
[Year]
),'Dates Expiry'[Year] <> BLANK()
) ,"X", CALCULATE(SUM('LM Property Tenant Unit'[CurrentRent]), FILTER(ALL('LM Property Tenant Unit'), 'LM Property Tenant Unit'[ExpiryYear] > 'Dates Expiry'[Year]))
)
RETURN(v)
)
我的 DAX 结果是 2 列;年份和价值:
- 到期日期[年] [X]
- 2018年68917213.56
- 2019 68399351.84
- 2020 67828645.39
我现在要做的是参考列 "X" 并对值列表求和以获得总数。
- 我曾尝试在另一个摘要中引用该列,但总和
函数需要一个 table 上下文。
有没有办法引用 "X" 并聚合成一个值?
回答:
最后我发现了 DAX GROUPBY 函数,它允许引用内部定义的结果集并对其应用进一步的计算:
GROUPBY(
FILTER(FILTER(
SUMMARIZE(
'Dates Expiry',
[Year]
,"X", CALCULATE(SUM('LM Property Tenant Unit'[CurrentRent]),
FILTER(FILTER(ALL('LM Property Tenant Unit'), 'LM Property Tenant Unit'[ExpiryYear] > 'Dates Expiry'[Year]), 'LM Property Tenant Unit'[CommenceDate] < TODAY()))
),'Dates Expiry'[Year] <> BLANK()), AND('Dates Expiry'[Year] > YEAR(TODAY()), 'Dates Expiry'[Year] < YEAR(TODAY())+16)
)
, "SX", SUMX(CURRENTGROUP(), [X])
)
我想要每个日期的到期日期大于当前上下文日期的所有值的总和。 代码:
EVALUATE(
VAR v = ADDCOLUMNS(
FILTER(
SUMMARIZE(
'Dates Expiry',
[Year]
),'Dates Expiry'[Year] <> BLANK()
) ,"X", CALCULATE(SUM('LM Property Tenant Unit'[CurrentRent]), FILTER(ALL('LM Property Tenant Unit'), 'LM Property Tenant Unit'[ExpiryYear] > 'Dates Expiry'[Year]))
)
RETURN(v)
)
我的 DAX 结果是 2 列;年份和价值:
- 到期日期[年] [X]
- 2018年68917213.56
- 2019 68399351.84
- 2020 67828645.39
我现在要做的是参考列 "X" 并对值列表求和以获得总数。
- 我曾尝试在另一个摘要中引用该列,但总和 函数需要一个 table 上下文。
有没有办法引用 "X" 并聚合成一个值?
回答:
最后我发现了 DAX GROUPBY 函数,它允许引用内部定义的结果集并对其应用进一步的计算:
GROUPBY(
FILTER(FILTER(
SUMMARIZE(
'Dates Expiry',
[Year]
,"X", CALCULATE(SUM('LM Property Tenant Unit'[CurrentRent]),
FILTER(FILTER(ALL('LM Property Tenant Unit'), 'LM Property Tenant Unit'[ExpiryYear] > 'Dates Expiry'[Year]), 'LM Property Tenant Unit'[CommenceDate] < TODAY()))
),'Dates Expiry'[Year] <> BLANK()), AND('Dates Expiry'[Year] > YEAR(TODAY()), 'Dates Expiry'[Year] < YEAR(TODAY())+16)
)
, "SX", SUMX(CURRENTGROUP(), [X])
)