Power BI DAX CountIF 查询
Posted
技术标签:
【中文标题】Power BI DAX CountIF 查询【英文标题】:Power BI DAX CountIF Query 【发布时间】:2021-02-11 14:08:02 【问题描述】:我已经做了很多寻找正确答案的工作,但我似乎找不到我想要的。
我在 Power BI 中有 2 个表。
表 A 显示年份、公司和产品,并有一列将公司和产品编号连接在一起。
表 B 与第一个表类似,但年份不同。在这张表中,我做了一个计数,看看该公司和产品是否在前一年出现过。在 Excel 中使用
=COUNTIF(TableA[[#All],[ComProd]],[@ComProd])
我可以在 PowerBI DAX/查询编辑器中使用类似的过程来复制它吗?
我尝试使用以下内容创建一个自定义列,希望它可以工作(它没有)-
if [ComProd] = #"TableA"[ComProd] then 1 else 0
我还在高级编辑器中尝试过以下操作:
= Table.AddColumn (
"Count", each
Table.RowCount(Table.SelectRows(
#"TableA",
each [ComProd] = [ComProd])))
但这给了我一个错误:
Expression.Error: 2 个参数被传递给一个期望在 3 到 4 之间的函数。 细节: 模式= 参数=[列表]
任何帮助都会很有帮助。
谢谢
【问题讨论】:
您可以在ComProd
上合并匹配并计算每个连接表中有多少行。
【参考方案1】:
好吧,我会将这两个表合并为一个,因为从长远来看它更实用,但假设它们是两个表,这里有一种方法(假设两个表之间没有关系):
假设您有一个基于第二个表格(2017 年)的表格视觉效果。您将构建此度量并以相同的视觉效果显示:
ComProdCount = COUNTROWS(FILTER(Table2016, Table2016[ComProd] = SELECTEDVALUE(Table2017[ComProd])))
或者如果它是一个计算列:
ComProdCount = COUNTROWS(FILTER(Table2016, Table2016[ComProd] = Table2017[ComProd]))
您还可以创建第三个表,其中列出所有唯一 ComProd 值并创建与 Table2016 和 Table2017 的关系,然后从这个新表中直观地显示 ComProd 并计算 Table2016 和 Table 2017 中的行数。
拥有这样一个模型充其量是次优的,但这是一种使用 DAX 明确地做你想做的事情的方法。
如果您将这两个表合并为一个,这会更容易 - 您只需创建一个矩阵视觉对象,将 Company 和 Product 放在行中,将 Year 放在列中,并将 count 行放在 measure 中。
【讨论】:
以上是关于Power BI DAX CountIF 查询的主要内容,如果未能解决你的问题,请参考以下文章
在 power BI 中提供电源查询技术/DAX 查询以填充列中的值