Tableau字符串拆分:如何从指定位置token提取至末尾?
解决提取从第2个分隔符后到末尾内容的问题
我明白你的困扰——SPLIT([Field Name], '/', 2)确实只会返回分割后的前2个元素,没法直接拿到从第2个token开始到末尾的完整内容。下面根据不同工具场景给你对应的解决方案:
场景1:Power Query(M语言)
用Text.AfterDelimiter函数最直接,它能指定跳过前N个分隔符后取剩余内容:
Text.AfterDelimiter([Field Name], "/", 1)
这里第三个参数是分隔符的索引(从0开始计数),传1就表示跳过第一个/,直接取后面所有内容,完全符合你的需求:
/one/two→two/three/three/four→three/four/five/six→six
场景2:SQL(以BigQuery为例)
可以先分割成数组,再切片取从第2个索引开始的元素,最后用ARRAY_TO_STRING拼接:
SELECT ARRAY_TO_STRING(SPLIT([Field Name], '/')[OFFSET(2):], '/') AS result
解释下:SPLIT会把字符串拆成数组(比如/three/three/four会变成["", "three", "three", "four"]),OFFSET(2):表示从索引2的位置开始取到数组末尾,再用/拼接起来就得到目标内容。
场景3:Excel/Google Sheets
用TEXTAFTER函数(Excel 365、Google Sheets均支持),直接指定取第2次出现/之后的内容:
=TEXTAFTER(A1, "/", 2)
这个函数专门做这类“取分隔符后内容”的操作,一步到位就能得到你想要的结果。
为啥之前的SPLIT不行?因为大多数工具里SPLIT的第三个参数是限制返回的元素数量,比如你传2,就只会返回前2个分割出来的元素,后面的内容自然就丢失啦。
内容的提问来源于stack exchange,提问作者Rene B.
相关产品推荐
相关产品推荐

