PowerBI DAX-基于多个条件识别初审

时间:2019-03-21 17:54:29

标签: powerbi dax countif

使用DAX识别记录的第一个实例

我面临着尝试识别数据库(由ID列标识)第一次购买产品的数据库中的第一个实例。该人可能在不同的日期多次购买产品,或在同一天购买不同的产品。我鼓起了一个出色的公式,可以带我到那里,但是在转换为DAX时遇到了麻烦。

=COUNTIFS(ID,ID,PurchaseDate,"<="&PurchaseDate,Product,Product)

哪个会在“第一实例”中得到正确的值?列。

enter image description here

理想情况下,我不必对值进行硬编码,因为将来我想将“ Product”列用作参数。如果除了在DAX中进行翻译之外,还有其他建议,也将不胜感激! (即使用过滤器或PowerBI中其他工具的IE)

谢谢!

1 个答案:

答案 0 :(得分:1)

这与我对另一个问题(您可以找到here)的回答非常相似。

在该问题中,请求是针对给定行的条件(产品,年份等)查看行的连续计数。我们可以对其进行一些修改,以使其能够解决您的问题。

这是我在上面链接的答案中提供的公式。基本概念是使用EARLIER函数从行中获取值并将其传递给filter语句。

Running Count = 
    COUNTROWS(
        FILTER(
            'Data',
            [ProductName] = EARLIER([ProductName]) &&
            [Customer] = EARLIER([Customer]) &&
            [Seller] = EARLIER([Seller]) &&
            [Year] <= EARLIER([Year])
        )
    )

对于您的问题,我建议通过简单地检查运行计数是否为1来将其创建为TRUE / FALSE标志。该公式将计算为布尔标志。

First Instance = 
    COUNTROWS(
        FILTER(
            'Data',
            [ID] = EARLIER([ID]) &&
            [Product] = EARLIER([Product]) &&
            [Purchase Date] <= EARLIER([Purchase Date])
        )
    ) = 1