如何将excel单元格中的数字和文本分开?
如何将excel单元格中的数字和文本分开?
问:一列中,有比如 123、123-1、1234-1、123三、123-1三、1234-1四的数据,要求把数字和文字分解开分列,如何分???
答:太奇葩的需求!不过还是希望下面实现过程中解的思路能帮助解决类似的问题。
首先奉劝大家在设计工作表时,一定要先设计好数据,不要出现一些奇怪的数据,导致后面操作上的麻烦。不信,您看到后面的公式后,就会有这种感觉了!
下图所示为B1单元格中的公式,是一个数组公式,即输入完公式后按Ctrl+Shift+Enter键。然后,拖至单元格B6,获取单元格A1中的数字部分。(公式好复杂吧!这都是怪数据惹的)
下图所示为C1单元格中的公式,然后,拖至单元格C6,获取A1单元格中的文字部分。
下面,我们来述一下上面数组公式是怎么得来的。
如果没有连字号(-),公式可能会相对简单些,但有这个连字号后,就需要多做几步工作了。将数据分成4块,第1块为连字号左侧的数字,第2块为连字号本身,第3块为连字号右侧的数字,第4块为文字。
第1步. 获取连字号右侧的数据。
第2步. 去除右侧数据中的文本。
这里使用了一个数组公式,其中ROW(1:10)用来摸拟一个含有10个数字的数组,用来将单元格B1中的数据分离(当然,这里假充B1中的数据不超过10个字符),使用MATCH函数找到文本出现的位置,使用LEFT函数获取文本前的字符。
第3步.将连字号前的数据(包括连字号)与其后的数据组合,即可获得除文本以外的数据。
然后用相应单元格中的公式进行替换,使公式中只含有A1。
以上是数据中含有连字号的情形。若数据中没有连字号,则需要作出判断,如下图所示,若A1中的数据不含连字号,则执行上面介绍的第2步中的运算,否则执行上面第3步中的运算。
将公式中不是A1的全部替换成A1表示的公式。由于最终我们要下拉公式,所以将ROW(1:10)修改为绝对引用ROW($1:$10)。
至此,公式完成。
小结
良好的数据设计有利于工作表今后的使用或修改。
大型公式都是一步一步构造的,利用很多中间公式,最后合成为一个大型公式。
可以使用“公式”选项卡中的“公式求值”功能来查看公式执行的中间结果,方便公式调试修改。
其实,公式的设计也像编写程序一样,需要算法设计,然后依据其一步步实现。