救救孩子感激不尽!excel如何提取多个分号的中间内容并完成字段分列?

待处理的列是履历,分号把每阶段履历都分隔开,并且放在每条记录的单元格里。数据复杂且不是整齐的,电脑excel一使用分列就停止运行工作,只能写函数或者宏之类的。求大佬帮忙写个函数吧!或者有没有啥其他方法?

显然用公式或者VBA都是可以的。如果分割的具体都是分号或者换行符,则这个规律可以被利用。

公式有很多种方法但是需要很长的公式来完成。由于每次都要用到数组公式,会很麻烦。所以不建议用公式。公司编辑起来思路会比较复杂。
建议用VBA来解决。用VBA的话,可以把数据循环提取,然后使用数组拆分的方法来解决这个问题,构思上要比公式容易得多。
由于公式比较复杂, 而VBA也需要耗费一定的精力和时间,如果要让我做的话,需要原表且不免费。如果有必要可以私信。
给你一下思路。可以使用数组对比分号或者换行符,如果能对的上,那么分别提取分号的位置(第几个字符)。并且用small函数对分号的位置进行排序。再用mid函数依次从分号后边的位置进行提取。提取长度,是以下一个分号的位置,减去前一个分号的位置的长度+1,当然,如果不提取分号,就不用+1了。提取出来之后,是分成几段的数组。再用small函数配合row函数将拆分后的数组以此提取到单元格里边。
用VBA的方案相对简单(但是代码写起来要构思,和时间)。循环你原始数据的单元格,然后将单元格数据用split函数进行数组拆分,将数组再依次写入单元格中。
以上的思路仅供参考。如果还有问题,欢迎继续追问或者私信。欢迎关注。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-12-06
你说的停止运行工作,是因为你A1中含有换行符。你看看每个分号后面都强行换行了!受这个换行符的影响,导致分列失败。
在B1中输入这条公式,可将换行符替换为空:

=SUBSTITUTE(A1,CHAR(10),)
因为B1是公式的,无法分裂,所以还需要给B1去除公式:
复制B1,在B1上点右键---选择性粘贴---粘贴为值,
这样B1中就只保留了结果,去除了公式。
最后,你再以B1的数据,进行分裂,即可。本回答被提问者采纳
第2个回答  2020-12-07
可以直接用换行符来进行分列的:
全选A列--数据--分列-分隔符号--其他--点选右边的空框--按住ALT键,再分别按小键盘上的1、0
操作正确的话,虽然空框里还是没东西,但是已经能看到分隔线了
点击“完成”即可
相似回答