一张WPS表格的K4单元格有如下内容:
Snipaste_2023-07-14_20-37-59.png
需要提取第三个逗号和第四个逗号之间的内容存放到J4单元格。据说office 365提供了新的TextSplit函数可以方便提取,可是手头没有。用VBA也可以方便提取,但是用户不会,只好写公式了。开始想借助AI,没成想AI给出的答案比自己写的还要乱。虽然答案是错误的,但是好在提供的思路没问题。
=MId(K4, FIND(",",K4,FIND(",",K4,FIND(",",K4)+1)+1)+1, FIND(",",K4,FIND(",",K4,FIND(",",K4,FIND(",",K4,FIND(",",K4)+1)+1)+1))-FIND(",",K4,FIND(",",K4,FIND(",",K4)+1)+1)-1)
看着这一堆嵌套find就头大,具体步骤是:
先找到第一个逗号的位置存放到比如L4单元格,然后以L4单元格加1为起始位置查找第二个逗号的位置,存放到M4,然后以此类推,找到第三个和第四个逗号的位置分别存放到N4和O4,最后利用mid提取N4和O4两个位置之间的内容。最后用各单元格的公式内容依次递归替换成最终公式。
VBA的解决办法简单明了,瞬间完成:
Sub tt()
For i = 4 To Sheet1.Range("k4").CurrentRegion.Rows.Count
Sheet1.Range("J" & i) = Split(Sheet1.Range("K" & i), ",")(3)
Next
End Sub
最终结果如图:
2.png