我面临着尝试识别数据库(由ID列标识)第一次购买产品的数据库中的第一个实例。该人可能在不同的日期多次购买产品,或在同一天购买不同的产品。我鼓起了一个出色的公式,可以带我到那里,但是在转换为DAX时遇到了麻烦。
=COUNTIFS(ID,ID,PurchaseDate,"<="&PurchaseDate,Product,Product)
哪个会在“第一实例”中得到正确的值?列。
理想情况下,我不必对值进行硬编码,因为将来我想将“ Product”列用作参数。如果除了在DAX中进行翻译之外,还有其他建议,也将不胜感激! (即使用过滤器或PowerBI中其他工具的IE)
谢谢!
答案 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