字符串拆分、去重、合并,你会吗?
具体应用

相信很多小伙伴看到我模拟的结果后就有思路了,无非是“三部曲”。
第一步,以竖线为分隔符,将字符串拆分为一个数组。
第二步,对拆分后的数组进行去重处理。
第三步,把去重后的数组重新合并为字符串。
这个问题如果用pq或者vba来做,都是比较简单的,因为它们都有现成的函数或工具可用。如果用工作表函数来做那可能就有点麻烦了,因为没有现成的函数可以用,拆分没有split,去重没有unique(365版本除外),合并没有textjoin(高版本还是有的,这个必须得有啊,要不然真没法搞了)。
虽然拆分没有split,幸好还有filterxml;虽然去重没有unique,幸好还有filterxml。
之前分享过filterxml分列的用法,其实它不仅可以分列,还可以去重。相当于一次干了2件事。想学习分列的用法,可以复习回顾《分列提取你还在用老套路吗?该尝试个新套路了。》这篇文章。



Sub 字符串拆分去重合并() Dim arr, brr, str, cy, n% Set d = CreateObject("scripting.dictionary") arr = Range("a2:a" & Cells(Rows.Count, 1).End(xlUp).Row) For Each str In arr n = n + 1 brr = Split(str, "|") For Each cy In brr d(cy) = "" Next arr(n, 1) = Join(d.keys, "|") d.RemoveAll Next Range("b2").Resize(n, 1) = arrEnd Sub
https://pan.baidu.com/s/1ZF61eevKNDAmtHwiwEEtBQ
赞 (0)
