在Excel中我可以,如果我在一张名为' Sales'有四列
销售
Month, CustomerId, ProductId, TotalQuantity
Jan,1, CAR,
Feb,1, CAR,
我可以添加一个公式:
=SUMIFS(Sales[Quantity],Sales[CustomerId],[@[CustomerId]])
这将转到Sales表,并对通过输入公式的当前行的CustomerID过滤的CustomerID列求和。
我试图在PowerBI计算行中复制它,但我无法获得@for行参考。它有点像
TotalQuantity = CALCULATE(SUM(Sales[Quantity]),Sales[CustomerId] = Sales[CustomerId]))
知道如何让等效@
工作吗?
答案 0 :(得分:1)
我认为您缺少的关键功能是EARLIER。这并不奇怪,因为它有一个误导性的名称 - 它实际上意味着“当前行”。您还需要在CALCULATE的Filter参数中使用FILTER函数,将过滤器上下文重置为整个表。
因此,您的新列功能可能如下所示:
TotalQuantity = CALCULATE(SUM(Sales[Quantity]), FILTER(Sales, Sales[CustomerId] = EARLIER (Sales[CustomerId])))
这是一个简洁的例子,来自DAX公式的最易访问的源站点:
FWIW这里是EARLIER的官方doco: