power bi文本,截取及查找函数
- 1. 文本函数
- 1.concatenate函数
- 2. exact 函数
- 3. find函数
- 4. search函数
- 2. 截取函数
- 1. fixed 函数
- 2. 大小写转换
- 3. trim函数
- 4.rept函数
- 5. replace 函数
- 6. substitute函数
- 3. 查找匹配函数
- 1 contains函数
- 2. treatas 函数
- 3. ContainsString函数
- 4. ContainsStringExact函数
1. 文本函数
1.concatenate函数
- 将两个字符串连接
- 格式:concatenate(<文本/数字>,<文本/数字>)
- 例子
列1 = CONCATENATE([文本1],[文本2]) 列2 = CONCATENATE([数字1],[数字2]) 列3 = CONCATENATE([数字1],[文本2])
2. exact 函数
- 判断字符是否相同,文本和数字都可以判断
- 格式:exact(<文本/数字>,<文本/数字>)
- 例子
列1 = EXACT([文本1],[文本2]) 列2 = EXACT([数字1],[数字2])
3. find函数
- 含义:找字符串在另一个字符串的起始位置
- 区分大小写,不支持通配符
- 格式:find(<待查找的内容>,<查找范围>,[<起始位置>],[<备选位置>])
- 参数含义
参数 | 属性 | 描述 |
---|---|---|
待查找的内容 | 要找的文本,使用双引号(空文本)匹配查找中的第一个字符;不允许使用通配符 | |
查找范围 | 包含要查找的文本的文本 | |
起始位置 | 可选 | 开始搜索的位置;如果省略,则起始位置=1,也就是查找范围中的第一个字符 |
备选结果 | 可选 | 未找到文本时返回的数值,可设为0,-1或blank();如果省略,则返回错误 |
- 例子
列 = find([子串],[字符串],1,blank())
4. search函数
- 含义:找字符串在另一个字符串的起始位置
- 不区分大小写,支持通配符
- 如果要查找的字符是?或
*
号本身,需要在?或*
前面加一个~
转义字符
- 如果要查找的字符是?或
- 格式:search(<待查找的内容>,<查找范围>,[<起始位置>],[<备选位置>])
- 参数含义
参数 | 属性 | 描述 |
---|---|---|
待查找的内容 | 要找的文本,使用双引号(空文本)匹配查找中的第一个字符;不允许使用通配符 | |
查找范围 | 包含要查找的文本的文本 | |
起始位置 | 可选 | 开始搜索的位置;如果省略,则起始位置=1,也就是查找范围中的第一个字符 |
备选结果 | 可选 | 未找到文本时返回的数值,可设为0,-1或blank();如果省略,则返回错误 |
- 例子
列 = search([子串],[字符串],1,blank()) 列2 = search("孙?华",[字符串],1,blank())
2. 截取函数
函数 | 描述 |
---|---|
left([字段名],取几个字符) | 从左向右取 |
right([字段名],取几个字符) | 从右向左取 |
mid([字段名],从第几个开始取,取几个字符) | 从中间开始取 |
len([字段名]) | 字段长度 |
- 例子
left = left([字符串],2) right = right([字符串],2) mid = mid([字符串],2,3) len = len([字符串])
1. fixed 函数
- 数值转字符按指定小数位四舍五入
- 将数值舍入到指定的小数位数并将结果返回为文本,可以指定返回的结果是否包含逗号
- 格式:fixed(<数字>,[<小数位数>],[<逻辑值>])
参数 | 属性 | 含义 |
---|---|---|
数字 | 要舍入并转换为文本的数字,或包含数字的列 | |
小数位数 | 可选 | 小数点右侧的位数;如果省略,则为2 |
逻辑值 | 可选 | 一个逻辑值:如果为1,则不再返回的文本中显示逗号;如果为0,再返回文本中返回逗号 |
- 例子
列 = fixed([数值],2,1) 列2 = fixed([数值],2,0)
2. 大小写转换
函数 | 描述 |
---|---|
lower(<文本>) | 转小写 |
upper(<文本>) | 转大写 |
- 例子
lower = lower([列1]) upper = upper([列1])
3. trim函数
- 删除文本前后的所有空格和单词之间多余的空格,保留内部的单个空格
- 格式:trim(
) - 例子
列1 = trim(" hello world ")
4.rept函数
- 重复字符串:按给定的次数重复文本
- 格式:rept(
,<重复次数>) - 如果重复次数为0,返回空白
- 重复次数不为整数,则截取该值
- 例子
列1 = rept([文本2],3)
5. replace 函数
- 按
指定位置
的字符串替换为新的字符串 - 如果替换的长度为空,或引用包含空值的列,则替换内容字符串插入到起始位置,不替换任何字符。
- 格式:replace(<文本>,<起始位置>,<替换长度>,<替换内容>)
参数 描述 文本 包含要替换的文本字符串,或对文本列的引用 起始位置 要替换的内容在原文本中的起始位置 替换长度 要替换的字符数 替换内容 用于替换原文中指定字符的替换文本 - 例子
列 = replace([字符串],3,3,"张三")
6. substitute函数
-
按指定内容替换字符串
-
区分大小写
-
格式:substitute(<文本>,<替换哪些内容>,<新内容>,[<匹配项>])
参数 属性 描述 文本 要在其中替换字符的文本或对文本的列的引用 替换内容 要替换的现有文本 新内容 要替换后的新文本 匹配项 可选 替换内容的匹配项,省略,全部替换 -
例子
列 = substitute([字符串],"孙兴华","张三")
3. 查找匹配函数
1 contains函数
-
多条件查找,只检查精确匹配,允许组合多列作为条件
-
格式:contains([table],[columnName],[value],[columnName],[value],…)
参数 属性 描述 table 物理表或表的表达式 columnName 可重复 使用标准SAX语法的现有列的名称,不支持表达式 value 可重复 任何返回单个标量值的DAX表达式,该值在columnname中查找 -
例子:度量值
是否购买过=CONTAINS('表','表'[日期],DATE(2020,12,2),'表'[姓名],"李四")
2. treatas 函数
- 无关系情况下查找匹配
- 格式:treatas(table_expression,[<column>[,<column>[,…]]])
- 作用:把什么当做什么
- 解释:就是把参数一当做参数而的筛选器,用过一参筛选二参(一参需是一端)
- 例子:根据日期表筛选日期,查找相应销售表日期销售
月度销售目标 = calculate(sum('销售目标'[销售目标]),TREATAS(values('日期表'[月]),'销售目标'[月份])) -- 多条件筛选 --年月销售目标1 = CALCULATE (SUM ( '销售目标'[销售目标] ),TREATAS ( VALUES ( '日期表'[年] ), '销售目标'[年份] ),TREATAS ( VALUES ( '日期表'[月] ), '销售目标'[月份]))
3. ContainsString函数
-
检查字符串是否被包含,包含返回true,不包含返回False
-
支持通配符,不区分大小写
通配符 含义 ? 匹配任何单个字符 * 匹配任何字符序列 -
格式:ContainsString(原文本,查找的文本)
-
例子
CONTAINSSTRING1 = CONTAINSSTRING([字符串],"孙兴华") CONTAINSSTRING2 = CONTAINSSTRING([字符串],"vba")
4. ContainsStringExact函数
- 检查字符串是否被包含,包含返回true,不包含返回False
- 不支持通配符,区分大小写
- 格式:ContainsStringExact(原文本,查找的文本)
- 例子
CONTAINSSTRINGEXACT1 = CONTAINSSTRINGEXACT([字符串],"孙兴华") CONTAINSSTRINGEXACT2 = CONTAINSSTRINGEXACT([字符串],"vba")