PowerBI中从字段文本提取数字并创建计算列的方法
在PowerBI中提取IDN后的纯数字计算列方案
方法一:使用DAX基础函数(兼容旧版本)
如果你的PowerBI版本不支持正则函数,可通过组合基础函数实现,创建新计算列时输入以下DAX公式:
IDN数字 = VAR IDN起始位置 = SEARCH("IDN", '你的表名'[短描述], 1, 0) VAR 数字起始点 = IDN起始位置 + 3 VAR 后续字符串 = MID('你的表名'[短描述], 数字起始点, LEN('你的表名'[短描述])) VAR 第一个分隔符位置 = MIN( IFERROR(FIND(" ", 后续字符串, 1), LEN(后续字符串)+1), IFERROR(FIND("-", 后续字符串, 1), LEN(后续字符串)+1), IFERROR(FIND("_", 后续字符串, 1), LEN(后续字符串)+1) ) VAR 提取结果 = LEFT(后续字符串, 第一个分隔符位置 - 1) RETURN IF(IDN起始位置 > 0 && ISNUMBER(VALUE(提取结果)), 提取结果, BLANK())
- 逻辑说明:先定位"IDN"的位置,截取其后的所有内容,再找到第一个空格、"-"或其他可能的分隔符,截取到分隔符前的内容,最后验证是数字才返回,否则返回空。
方法二:使用正则表达式(简洁高效,适用于新版本PowerBI)
如果你的PowerBI版本支持REGEX.EXTRACT函数,直接用正则匹配更简单:
IDN数字 = REGEX.EXTRACT('你的表名'[短描述], "IDN(\d+)")
- 逻辑说明:正则
IDN(\d+)会精准匹配"IDN"后面连续的数字部分,直接返回捕获的数字内容;如果没有匹配到IDN或后续无数字,会返回空值。
内容的提问来源于stack exchange,提问作者Mark Tait
相关产品推荐
相关产品推荐

