power pivot是按列储存数据的...所以其实没有行的概念,需要有逻辑定位到“上一行”,比如添加一个索引列。如果像图示那样的源数据,恐怕无法实现你想要的结果。
这就是活生生的索引行的概念,在dax中不是这么玩的;基本能猜到你要做什么,其实可以用dax其他的概念来解决,思维应该还是用excel里面的行的概念,其实当你说上一行的时候,你你已经默认有索引了,不然你无法锁定什么是上一行,所以在数据处理的时候比如pq的时候就加入索引,问题就解决多了。
如下是用dax仿照pq的加索引。
DEFINE
VAR T0 =
SUBSTITUTEWITHINDEX (
ADDCOLUMNS ( data, "R", data[日期], "X", data[姓名], "D", data[单价] ),
"INDEX", data,
data[日期], ASC
)
VAR T1 =
ADDCOLUMNS (T0,"TF",
VAR N = [INDEX]
VAR T11 = FILTER ( T0, [INDEX] = N - 1 )
VAR R1 =SUMX ( T11, [R] )
VAR X1 = CONCATENATEX ( T11, [X] )
RETURN
[R] = R1&& [X] = X1
)
EVALUATE
T1