【问题标题】:Wildcard search in the IN operatorIN 运算符中的通配符搜索
【发布时间】:2020-12-01 03:03:40
【问题描述】:

我正在尝试创建一个度量:

目前我有:

a_measure = 
CALCULATE(SUM(table[Count]),
table[status] IN {"Duplicate","Returned - 10+ Days", "Returned - Inappropriate"}
)

桌子是我的桌子

table[Count] 是一个辅助列,每行的值为“1”。 (当我在 Excel 和 BI 中工作时,它被继承了 - 我发现它使求和/计数更容易)

我的衡量标准是: 状态为重复或返回 10+ 或返回 - 不合适时的总和列计数。

我想做的,而不是写出每种不同类型的返回是: 总和计数时间 表[状态] = 重复 或者 search("return",table[status],0,0)=TRUE

这真的很有帮助。 这样做可能会很好

IN {"duplicate",search("Return%"))

但我认为从 IN 的工作方式 (https://www.sqlbi.com/articles/from-sql-to-dax-string-comparison/) 你不能这样做。 如果我在 R 中这样做,我可以使用类似filter(str_detect(status,"foo"))|status="duplicate"

如果我使用 countrows,我可以过滤每个条件,但我不知道如何在过滤器中应用通配符搜索。您可以在过滤器中应用搜索吗?感觉可以。

或者,我可以在表中写一列,以便将其分配给一个组,例如 复制 Returned(有多种Returned) Closed(有多种 Closed 类型)

然后使用 table[newfudgecolumn] IN {"Duplicate","Returned"}

这在技术上可以解决问题,但不是我想要的方式。

编辑:我需要阅读这个 DAX Query - Filtering out values from a table in powerbi

Search rows with the same ID and apply AND filter to count a particular occurrence

编辑: 我已经浏览了这些内容,虽然它们通过计算为每个单独条件(我理解)过滤的行来工作,但它们都没有在单个条件中应用字段搜索(这是我想要的)。

tl;博士 我想将字段的通配符搜索应用于 IN 运算符

我想对 COUNTROWS 运算符中的字段应用通配符搜索。

希望这是有道理的。

【问题讨论】:

  • 相关:1, 2

标签: powerbi dax


【解决方案1】:

你可以像你的 R 代码那样做:

a_measure =
CALCULATE (
    SUM ( table[Count] ),
    FILTER (
        ALL ( table[status] ),
        CONTAINSSTRING ( table[status], "Return" ) || table[status] = "Duplicate"
    )
)

如果您愿意,可以使用table[status] IN { "Duplicate" },但我想不出在IN 集合中使用通配符的方法。


请注意,CONTAINSSTRING function 允许使用通配符 ?*

【讨论】:

  • 谢谢亚历克西斯。这正是我对过滤器所追求的那种答案。在 R 中,我可能已经做了类似的事情: list
  • 我不太明白。随意写一篇新的帖子来解决这篇文章中没有回答的其他问题。
  • 我认为最好提出一个新问题!再次感谢
猜你喜欢
  • 1970-01-01
  • 2018-01-10
  • 1970-01-01
  • 2012-10-11
  • 1970-01-01
  • 2016-03-03
  • 2013-01-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多