如何使用DAX拆分Controls列中AON开头的7位字符串至新列
DAX 拆分Controls列实现方案
以下是针对你需求的两种常见场景的DAX实现代码,直接替换表名即可使用:
场景1:单条Controls仅含1个AON开头7位编码,直接拆分字段
如果仅需要提取完整编码,新建计算列:
完整AON编码 = VAR 控件内容 = '你的表名'[Controls] RETURN IF( LEFT(控件内容,3) = "AON" && LEN(控件内容) = 7, 控件内容, BLANK() )
如果需要拆分前缀和后续4位数字为两个独立列,分别新建以下两个计算列:
AON前缀 = LEFT('你的表名'[Controls],3)
数字后缀 = RIGHT('你的表名'[Controls],4)
场景2:单条Controls含多个AON编码,拆分至独立行
如果单个Controls单元格内有多个AON编码(以逗号/空格等符号分隔),可通过以下DAX生成一张拆分后的新表:
拆分编码表 = VAR 原始数据表 = '你的表名' RETURN SELECTCOLUMNS( GENERATE( 原始数据表, // 先统一分隔符为|,适配空格、逗号两种常见分隔场景 VAR 统一分隔符内容 = SUBSTITUTE(原始数据表[Controls]," ",",") VAR 编码总数 = PATHLENGTH(SUBSTITUTE(统一分隔符内容,",","|")) RETURN GENERATESERIES(1,编码总数,1) ), "Uniq ID",原始数据表[Uniq ID], "拆分后AON编码", TRIM(PATHITEM(SUBSTITUTE(SUBSTITUTE(原始数据表[Controls]," ",",") ,",","|"),[Value])) )
注意:使用所有代码前,请将
你的表名替换为你数据模型中对应的实际表名;如果编码分隔符为其他特殊符号,可自行调整SUBSTITUTE函数的替换规则。
内容的提问来源于stack exchange,提问作者BARG
相关产品推荐
相关产品推荐

