我正在尝试制定一种措施:
目前我有:
a_measure =
CALCULATE(SUM(table[Count]),
table[status] IN {"Duplicate","Returned - 10+ Days", "Returned - Inappropriate"}
)
桌子是我的桌子
table [Count]是一个帮助器列,每行的值均为“ 1”。(当我同时使用Excel和BI时,它被保留了-我发现它使求和/计数更容易)
我的测量结果是:状态为Duplicate或Returned 10+或Returned-不适当时,对Sum列进行计数。
我想做的是,而不是写出每种不同类型的返回值,是:总计数当table [status] = Duplicate OR search(“ return”,table [status],0,0)= TRUE时
这真的很有帮助。这样做可能会很好
IN {"duplicate",search("Return%"))
但是我认为从IN的工作方式(https://www.sqlbi.com/articles/from-sql-to-dax-string-comparison/)中,你无法做到这一点。如果我在RI中这样做,可以使用类似filter(str_detect(status,"foo"))|status="duplicate"
如果使用计数,则可以针对每个条件进行过滤,但是我不知道如何在过滤器中应用通配符搜索。你可以在过滤器中应用搜索吗?感觉可以。
或者,我可以在表中写入一列,以便将其分配给类似Duplicate Returned(具有多种类型的Returned),Closed(具有多种Closed类型)的组。
然后使用table [newfudgecolumn] IN {“ Duplicate”,“ Returned”}
从技术上讲,这可以解决问题,但不能以我想要的方式解决。
编辑:我需要阅读此 DAX查询-从powerbi中的表中筛选出值
编辑:我已经略过那些,虽然它们通过计算针对每个单独条件过滤的行来工作(据我所知),但它们都不在单个条件下应用搜索字段(这就是我想要的)。
tl; dr我想将字段的通配符搜索应用于IN运算符
或者
我想对COUNTROWS运算符中的字段应用通配符搜索。
希望这是有道理的。
你可以像你的R代码一样进行操作:
a_measure =
CALCULATE (
SUM ( table[Count] ),
FILTER (
ALL ( table[status] ),
CONTAINSSTRING ( table[status], "Return" ) || table[status] = "Duplicate"
)
)
table[status] IN { "Duplicate" }
如果愿意,可以使用,但我想不出一种方法来处理IN
集合中的通配符。
请注意,CONTAINSSTRING函数确实允许使用通配符?
和*
。
谢谢亚历克西斯。这正是我对过滤器所追求的答案。在RI中,可能会执行以下操作:list <-c(“ duplicate”,“ removed”,“ like”,“ this”),然后执行FILTER%IN%list来过滤变量。您可以在DAX中做到这一点吗?
我不太明白。随意撰写一篇新帖子,以解决此问题中未回答的其他问题。
我认为最好是一个新问题!再次感谢