date return
1/1/2010 1.01
2/1/2010 1.02
3/1/2010 1.03
4/1/2010 1.04
5/1/2010 1.05
6/1/2010 1.06
7/1/2010 1.07
8/1/2010 1.08
9/1/2010 1.09
嗨,那里,
我有累积的返回数据(factor_return
)。我想要一个measure = return / start_return
其中start_return
是过滤日期范围内最早的日期的返回。
谢谢
我尝试了此操作,但抱怨“找不到名称factor_return [return]”。请帮忙。
Measure =
VAR start_return =
CALCULATE (
VALUES ( factor_return[ return] ),
FILTER (
ALLSELECTED ( factor_return[date] ),
factor_return[date] = MIN ( factor_return[date] )
)
)
RETURN
DIVIDE ( factor_return[ return], start_return )
答案 0 :(得分:0)
首先,您的错误表示您对列进行了拼写错误。我可以看到您在'return'之前添加了一个空格,[return]和[return]之间有区别。请注意第一个示例中的空格。
第二,您的公式无法满足您的需求,因为MIN()语句会受到当前过滤表上下文之外的filtercontext的影响。它将在仅1行(当前日期行)的表中搜索最小日期。 以下措施将为您工作:
Measure =
VAR start_return = CALCULATE(VALUES(factor_return[return]), FILTER(ALLSELECTED(factor_return), factor_return[date] = MINX(ALLSELECTED(factor_return), factor_return[date])))
RETURN
DIVIDE(SELECTEDVALUE(factor_return[return]), start_return)
以下屏幕截图中的度量2显示了VAR start_return的值。
希望这会有所帮助!
答案 1 :(得分:0)
我会这样:
Measure =
VAR start_date =
CALCULATE (
MIN ( factor_return[date] ),
ALLSELECTED ( factor_return )
)
VAR start_return =
CALCULATE (
SELECTEDVALUE ( factor_return[return] ),
factor_return[date] = start_date
)
RETURN
DIVIDE ( SELECTEDVALUE ( factor_return[return] ), start_return )
这将计算过滤器中的第一个日期,查找该日期的收益,然后将当前收益除以该第一个收益。