Excel函数技巧中的TextSplit和VStack被称为数据清洗的利器。TextSplit函数可以将文本按指定的分隔符进行拆分,而VStack函数可以将多列数据垂直合并。利用这两个函数的组合,可以方便快捷地对数据进行清洗和整理,提高工作效率。在处理大量数据时,这些函数能帮助我们更高效地完成数据清洗工作,提升工作效率和准确性。
如图,想要把文本内容中的批号、重量、数量分列出来,公式如下:
=TEXTSPLIT(A2,TEXTSPLIT(A2,VSTACK(SEQUENCE(10)-1,LEFT(ADDRESS(1,SEQUENCE(26),4,1),1),"-","."),,1),,1)
公式思路:textsplit函数是专门用于分列的函数,第一次用会按分列符号将文本分到几个单元格,但如果再次用就可以将第一次得到的文本作为分列符号,完成反向分列。这样就相当于把第一次分列时的符号变成了要保留下来的符号,不符合规定的数据因为作为分列符被去除掉啦。当然一定要选择第四参数,忽略掉空白单元格。
这样如果你想保留文本中的哪些字符就可以将它们列出来,再用vstack函数把它们组成一个数组。这其中与数字搭配的负号、小数点、与字符有关的横线连接号都可以保存下来。用了方便可以使用快速数组多保留一些,只要文本中不存在相同字符的就不影响结果。
本例中有两个快速数列保留的比较有代表性,那就是数字、和大写字母:
数字的表达式:SEQUENCE(10)-1,当然也可以用row函数或者column函数生成。
大写字母的表达式:LEFT(ADDRESS(1,SEQUENCE(26),4,1),1)。字母包括汉字也可以用code+char函数生成。比如生成小写字母,可以这样写:
=CHAR(ROW(INDIRECT("a"&CODE("a")&":a"&CODE("z")))),
汉字大体可以这样写:
=CHAR(ROW(INDIRECT("a"&CODE("啊")&":a"&CODE("座")))),
好处就是不用再去记数字,非常直观。