PowerBI DAX-基于多个标准识别第一个实例 使用DAX识别记录的第一个实例
我面临着试图识别数据库中的第一个实例,其中ID列标识的人首次购买了产品。上述人员可以在不同的日期多次购买产品,或者在同一天购买不同的产品。我鼓动了一个excel公式,使我达到了目的,但在翻译成DAX时遇到了困难PowerBI DAX-基于多个标准识别第一个实例 使用DAX识别记录的第一个实例,powerbi,dax,countif,Powerbi,Dax,Countif,我面临着试图识别数据库中的第一个实例,其中ID列标识的人首次购买了产品。上述人员可以在不同的日期多次购买产品,或者在同一天购买不同的产品。我鼓动了一个excel公式,使我达到了目的,但在翻译成DAX时遇到了困难 =COUNTIFS(ID,ID,PurchaseDate,"<="&PurchaseDate,Product,Product) 在第一个实例中,哪个结果是正确的值?专栏 理想情况下,我不必硬编码值,因为我希望将来使用Product列作为参数。如果除了在DAX中翻译之外还有
=COUNTIFS(ID,ID,PurchaseDate,"<="&PurchaseDate,Product,Product)
在第一个实例中,哪个结果是正确的值?专栏
理想情况下,我不必硬编码值,因为我希望将来使用Product列作为参数。如果除了在DAX中翻译之外还有其他建议,也将不胜感激!IE在PowerBI中使用过滤器或其他工具
提前谢谢 这与我对你能找到的另一个问题的回答非常相似 在这个问题中,请求是查看给定行的标准product、year等的行的运行计数。。我们可以稍微修改一下,让它在你的问题中起作用 这是我在上面链接的答案中提供的公式。基本概念是使用函数从行中获取值并将其传递到filter语句中
Running Count =
COUNTROWS(
FILTER(
'Data',
[ProductName] = EARLIER([ProductName]) &&
[Customer] = EARLIER([Customer]) &&
[Seller] = EARLIER([Seller]) &&
[Year] <= EARLIER([Year])
)
)
对于您的问题,我建议您通过简单地检查运行计数是否为1,将其创建为真/假标志。此公式将计算为布尔标志
First Instance =
COUNTROWS(
FILTER(
'Data',
[ID] = EARLIER([ID]) &&
[Product] = EARLIER([Product]) &&
[Purchase Date] <= EARLIER([Purchase Date])
)
) = 1
您希望将其作为计算列还是度量值?据我所知,计算列最好,因为结果存储在表中,而不是像度量值一样在渲染时进行计算。我对PowerBI还比较陌生,所以鼓励大家有其他想法!我建议先读一读:我很感激!谢谢RADO@RADO这是一个伟大的阅读,也是一个伟大的资源,其他信息。再次感谢你的建议!这与我在网上找到的答案相似,明天我会试一试。我真的很感激你的回答,乔!如果我能让它工作的话,我会把它标记为正确答案。嘿,乔,这很有魅力!输出几乎与我在Excel环境中得到的输出完全匹配。再次感谢!