@焦棚子
调试后还发现一个问题, 就是子级的编码要么是1~99, 要么是A~Z, 所以如果在-和-之间的数字是11或99之间的话, 那么上面的代码还是就会多出一位0来,
源数据为: 8R0 199 381EL-11-H
期望结果: 8R0 199 381EL-11-H
当前结果: 8R0 199 381EL-011-H ===>. [因为 "-0"&y&"0" 只能处理 '-01'0 ~ '09'0, 所以这里的011就被遗漏了.]
如焦老师所言, 第一步规范数据源才是正道, 感谢焦老师的不厌其烦, 我于是就用了下面这个大笨瓜式的3层Text.Replace处理法, 希望焦老师不要打我, 假如焦老师能再指教优化一下, 万分感谢焦老师!
(Len)=>List.Accumulate({"1".."9"},Len,(x,y)=>(if not Text.Contains(x,"-")then x else Text.Replace(Text.Replace(Text.Replace(x,"-"&y,"-0"&y),"-0"&y&"0","-"&y&"0"),"-0"&y&y,"-"&y&y)) )