如图,Excel中将a列的字符串拆分开来,每三个字符占用一个单元格,如果最后一个单元格剩余不足3个字符,就把剩下的填上
实现这个效果主要是要使用mid、sequence、mod、if和len5个函数
字符串的提取很容易想到mid函数,所以可以先对前三个字符提取试试
可以看到,第一个参数就是a1单元格,第三个参数就是提取的长度。长度为3的话就算剩下的字符只有2个或者1个,提取出来也是2个或1个。
所以这里就是在第二个参数,也就是字符提取开始的位置,这个参数进行修改。
使用sequence函数就可以求出每个单元格需要开始提取的位置。因为每个单元格需要3个字符,所以把字符串的长度除以3,就是每一行需要的单元格的个数。
不过这里有一个问题就是如果a列的字符串长度不能被3整除,就会导致缺少最后1段。
比如说第1行,字符提取,应该是第1个位置,和第4个位置。但是在sequence函数中因为5除以3是1.6多,所以sequence函数就生成了1列。
所以可以对sequence函数的第二个参数进行一个if判断:
如果a列的字符串总长度对3求余数,如果等于0,说明不存在余数,字符串长度可以被3除尽,那就显示len(a1)/3列
如果不等于0,说明存在余数,没有被3除尽,那就显示len(a1)/3+1列,这样就把剩下的字符也提取出来了
可以看到第2行就是6个字符,可以被3除尽,应该占用2个单元格。第一行是5个字符,不能被3除尽,但是也要占用两个单元格,一个单元格3个字符,另一个单元格2个字符。
然后把这个公式套到mid函数里就完成了
最终结果
如果您需要Excel数据处理
可以联系我