excel学习库

excel表格_excel函数公式大全_execl从入门到精通

PowerBI判断字符串包含某字段CONTAINSSTRING

昨天登录公众号,看到几位朋友的私信,其中一位问了一个PowerBI的问题,已是上周四的了,昨天要发另外一篇,今天就补上,希望不会太迟。

大概问题是,有一列字段,里面很多字符串,需要根据每条字符的最后几个字段进行判断,如果符合要求就进行计数,为了再延展一下,我就模拟了一个列表,如下↓

一共有10行,数据很简单,首先是计算以pro结尾的列数。这里为了方便,就先通过新建列的方式看一下效果。上面这种以pro结尾的,直接使用if判断就行,使用right计算后三位的值是否是pro,DAX和结果如下↓

pro结尾 = IF(RIGHT([title],3)="pro",1,BLANK())

结果和预期一样,只有4列以pro结尾的返回了值。这是单条件判断,根据需求是需要多条件判断,只要满足一个条件就可以返回值,所以这里在加一个如果是plus结尾的,也返回值,思路还是一样的,只是再加一个条件就行了↓

pro/plus结尾 =

IF(

RIGHT([title],3)="pro" || RIGHT([title],4)="PLUS",

1,

BLANK()

)

从结果可以看出,以pro和plus结尾的就返回了值。下面是拓展部分,如果是字段中包含pro字段才返回值。这时候就可以使用CONTAINSSTRING函数,只要包含某个字符就返回指定值,DAX语句如下↓

包含pro =

IF(

CONTAINSSTRING([title],"pro"),

1,

BLANK()

)

可以看到除了结尾是pro的字段,中间包括pro的也返回了值,然后是多条件同理↓

包含pro/plus =

IF(

CONTAINSSTRING([title],"pro")||

CONTAINSSTRING([title],"plus"),

1,

BLANK()

)

也是正确返回了结果。但是倒数第三个写错了,写成了plas,这种也可以通过这个函数,使用*号进行模糊匹配,就能返回值了↓

包含pro/plus模糊 =

IF(

CONTAINSSTRING([title],"p*o")||

CONTAINSSTRING([title],"p*s"),

1,

BLANK()

)

【度量值部分】

上面是通过新建列的方式直观的展示效果,但是大部分情况下实在度量值中使用的。下面就新建几个度量值来实现,第一个是使用right函数来判断最后三个值是否是pro,结果是正确的↓

end_pro =

CALCULATE(

COUNTROWS('data'),

FILTER(

'data',

RIGHT('data'[title],3) = "pro"

)

)


end_pro/plus =

CALCULATE(

COUNTROWS('data'),

FILTER(

'data',

(RIGHT('data'[title],3) = "pro" ||

RIGHT('data'[title],4) = "plus")

)

)

然后是使用CONTAINSSTRING函数来实现,分别是单个条件和两个条件的情况↓

contain_pro =

CALCULATE(

COUNTROWS('data'),

FILTER(

'data',

CONTAINSSTRING('data'[title], "pro")

)

)


contain_pro/plus =

CALCULATE(

COUNTROWS('data'),

FILTER(

'data',

CONTAINSSTRING('data'[title], "pro") ||

CONTAINSSTRING('data'[title], "plus")

)

)

最后是使用模糊匹配的结果↓

contain_pro/plus模糊 =

CALCULATE(

COUNTROWS('data'),

FILTER(

'data',

CONTAINSSTRING('data'[title], "p*o") ||

CONTAINSSTRING('data'[title], "p*s")

)

)

现在应该能够解决相关的问题了,最后解释一下为什么在Excel中有大小写,在PowerBI里面就没有了的问题。其实在PowerQuery里面是严格遵循大小写的,也就是M语言区分大小写,而DAX语言不区分,大概差异如下↓

语言设计差异:
M 语言:设计用于数据提取和转换,类似于其他函数式编程语言,遵循严格的语法规则,包括大小写区分。
DAX 语言:设计用于数据分析,强调易用性和可读性,函数名称不区分大小写使得编写公式更加方便。
使用场景不同:
Power Query:主要用于数据预处理和转换,操作通常更接近于 ETL(Extract, Transform, Load)过程。
Power BI 数据模型:主要用于数据建模和分析,操作更接近于报告和数据挖掘过程。

End

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2024年12月    »
1
2345678
9101112131415
16171819202122
23242526272829
3031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
      友情链接