在使用Power Bi桌面时,我遇到了一个问题。我有一个csv文件作为数据源,并且我有一列具有多个值,例如“ abc,def”,“ jkl”,“ zyz”等。
在这里,我需要生成一个报告,其中包含显示“ def”和“ jkl”的行。 如何使用DAX筛选器命令进行筛选。我想获取,过滤Power BI报表中的两个值CTF&EVE。 我尝试创建一个计算列并应用了以下代码,但没有成功:
Columnjkl = FILTER((Table1,OR(Table1[mycolumn1] == "def" || "jkl"))
答案 0 :(得分:0)
您需要阅读DAX语法的编写方式,请查看此页以了解如何使用FILTER函数(FILTER),以及如何使用OR函数(OR)
基本上,Filter返回一个表,因此使用它来计算列将不起作用。但是,通过在CALCULATE中实现FILTER函数,您可以更改/修改CALCULATE的主要参数将要求值的内容。 DAX中的计算流程是,首先评估filter参数,然后评估聚合(或以往)。示例:
NumberOfRowsWithABC =
CALCULATE =
COUNTROWS('Table1'),
FILTER(
'Table1',
'table1[mycolumn1] = "abc"
)
)
首先,FILTER函数仅选择“表1”中的行,其中[mycolumn1]的文本值为abc。然后,它将这个缩小的表传递给COUNTROW函数,该函数对传递给它的表中的行数进行计数。
OR函数的语法错误。这是你应该怎么写的:
OR(
'Table1'[mycolumn1] = "def",
'Table1'[mycolumn1] = "jkl"
)
也许编写OR函数的一种更好的方法是使用命令中的命令作为计算函数的过滤器参数:
NumberOfRowsWith_def_and_jkl =
CALCULATE(
COUNTROWS('Table1'),
'Table1'[mycolumn1] in {"def", "jkl"}
)
但是,正如Gangula所写的那样,您不需要使用FILTER函数过滤“ Table1”,所有这些都可以在仪表板上直观地完成。