我已经做了很多寻找正确答案的工作,但似乎找不到我想要的。
我在 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 之间的函数。 细节: 图案= 参数=[列表]
任何帮助都会很有帮助。
谢谢
答案 0 :(得分:0)
好吧,我会将这两个表合并为一个,因为从长远来看更实用,但假设它们是两个表,这是一种方法(假设两个表之间没有关系):
假设您有一个基于第二个表格(2017 年)的表格视觉效果。您将构建此度量并在同一视觉对象中显示:
ComProdCount = COUNTROWS(FILTER(Table2016, Table2016[ComProd] = SELECTEDVALUE(Table2017[ComProd])))
或者如果它是一个计算列:
ComProdCount = COUNTROWS(FILTER(Table2016, Table2016[ComProd] = Table2017[ComProd]))
您还可以创建第三个表,列出所有唯一的 ComProd 值并创建与 Table2016 和 Table2017 的关系,然后直观地显示此新表中的 ComProd,并对 Table2016 和 Table2017 中的行进行计数。
拥有这样的模型充其量是次优的,但这是一种使用 DAX 明确执行您想要的操作的方法。
如果您将这两个表合并为一个,这会变得更容易 - 您只需创建一个矩阵视觉,将 Company 和 Product 放在行中,将 Year 放在列中,并将行计数作为度量。