在excel办公时,我们经常会遇到提取单元格内数字和文本情况,虽然现在可以用只能填充,但是我们还是要从本质上解决这个问题。
在数字列输入=CONCAT(IF(ISNUMBER(MID(A2,ROW($1:$20),1)*1),MID(A2,ROW($1:$20),1),""))后下来即可提取数字部分。
在文本列输入=CONCAT(IF(ISNUMBER(MID(A2,ROW($1:$20),1)*1),"",MID(A2,ROW($1:$20),1)))后下来即可提取文本部分。
现在讲一下函数是怎么推演出来的,首先要明白ROW($1:$20)的作用,单个输入会生成1-20的数,要对应筛选单元格的每一个字符,如果单元格字符超过20个,这要增加到ROW($1:$30),以此类推。
MID(A2,ROW($1:$20),1)的作用是对应每一个字符,有的就显示出来。
IF(ISNUMBER(MID(A2,ROW($1:$20),1)*1),"",MID(A2,ROW($1:$20),1))的作用就是判断提取的每个字节是否是数字,是数字则显示,不是则隐藏,下图是判断每个字节是否是文本的。
CONCAT(IF(ISNUMBER(MID(A2,ROW($1:$20),1)*1),MID(A2,ROW($1:$20),1),""))的作用是将显示出的数链接起来。这样就提取出数字和文本了。
但是有一个问题,如果出现小数这个公式就不好用了,因为小数点属于文本,至于怎么解决我会在下一篇进行讲解。
评论 (0)