powerbi - PowerBI DAX - 根据多个条件识别第一个实例
问题描述
使用 DAX 识别记录的第一个实例
我面临着试图识别数据库中某人(由 ID 列标识)第一次购买产品的第一个实例。该人可能在不同的日子多次购买该产品,或者在同一天购买不同的产品。我提出了一个让我到达那里的 excel 公式,但在转换为 DAX 时遇到了麻烦。
=COUNTIFS(ID,ID,PurchaseDate,"<="&PurchaseDate,Product,Product)
哪个导致“一审”中的值正确?柱子。
理想情况下,我不必对值进行硬编码,因为我希望将来使用“产品”列作为参数。如果除了在 DAX 中翻译之外还有其他建议,那也将不胜感激!(IE 使用过滤器,或 PowerBI 中的其他工具)
提前致谢!
解决方案
这与我对另一个问题的回答非常相似(您可以在此处找到)。
在那个问题中,请求是查看给定行的标准(产品、年份等)的行数。我们可以稍微修改它以使其在您的问题中起作用。
这是我在上面链接的答案中提供的公式。基本概念是使用EARLIER
函数从行中获取值并将其传递给过滤器语句。
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
推荐阅读
- python - 如何从 pyspark 数据框创建持久视图
- javascript - 如何将 json 数据与 Angular 材质表绑定以创建动态表?
- regex - 为什么使用 WinSCP .NET 程序集时此 SSH 主机密钥指纹与模式不匹配
- sql - JSON_TABLE 过滤条件问题
- r - 在 R 中:在 group_by 中找到最接近的值,不包括自我比较
- javascript - 在多行上切换内容
- r - 按降序排列连续数据
- javascript - 我们可以将 Cordova 插件添加到 package.json 吗?
- javascript - 将获取返回的承诺作为 ReactJS 中的上下文值传递
- java - Word 文档消息