SUMBS的PowerBi DAX等价物,当前行值为过滤器

时间:2016-02-08 08:05:19

标签: dax powerbi

在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]))

知道如何让等效@工作吗?

1 个答案:

答案 0 :(得分:1)

我认为您缺少的关键功能是EARLIER。这并不奇怪,因为它有一个误导性的名称 - 它实际上意味着“当前行”。您还需要在CALCULATE的Filter参数中使用FILTER函数,将过滤器上下文重置为整个表。

因此,您的新列功能可能如下所示:

TotalQuantity = CALCULATE(SUM(Sales[Quantity]), FILTER(Sales, Sales[CustomerId] = EARLIER (Sales[CustomerId])))

这是一个简洁的例子,来自DAX公式的最易访问的源站点:

http://www.powerpivotpro.com/2013/07/writing-a-subtotal-calc-column-aka-the-simplest-use-of-the-earlier-function/

FWIW这里是EARLIER的官方doco:

https://msdn.microsoft.com/en-us/library/ee634551.aspx