我是Power BI的新手。我正在阅读一篇计算移动平均线的文章。我想知道LOOKUPVALUE
函数中发生了什么。
任何人都可以告诉我们EARLIER ( Prices[DayNumber] ) – 8
。到底是什么?它减去值EARLIER ( Prices[DayNumber] ) - 8
或显示从Prices[DayNumber]
到8
的范围。而EARLIER ( Prices[DayNumber] ) = 2
会怎样?它返回了什么?
Prices[MovingAverage200] =
CALCULATE (
AVERAGE ( Prices[Close] ),
FILTER (
ALL ( Prices[Date] ),
AND (
Prices[Date]
>= LOOKUPVALUE (
Prices[Date],
Prices[Stock], EARLIER ( Prices[Stock] ),
Prices[DayNumber], EARLIER ( Prices[DayNumber] ) – 8
),
Prices[Date] <= EARLIER ( Prices[Date] )
)
),
ALLEXCEPT ( Prices, Prices[Stock] )
)
答案 0 :(得分:1)
LOOKUPVALUE
通过表Prices[Date]
逐行搜索Prices
列中的值,其中该行中的Stock
值与当前行,即EARLIER( Prices[Stock] )
,并且该行中的DayNumber
与当前行中的值减去8天即EARLIER( Prices[DayNumber]) - 8
相匹配。
请注意,EARLIER
函数与时间无关。它指的是较早的 行上下文 。由于您位于迭代器函数FILTER
中,也位于LOOKUPVALUE
内部,因此您需要EARLIER
函数来指定您是在外部函数的上下文中谈论该列,而不是在内部的。
此度量总体上是对Close
和Date - 8 days
(包括两端)之间的所有日期以及与当前Date
匹配的所有行的Stock
值取平均值。