学点EXCEL不加班|四种方法都挺好,EXCEL字符拆分

转自:Excel之家ExcelHome
小伙伴们好啊 , 今天和大家分享一个数据拆分的实例 。
先来看数据源:
学点EXCEL不加班|四种方法都挺好,EXCEL字符拆分
文章图片
图片中的A列是从系统导出的信息 , 其中包含项目名、分期、标段以及房间号 , 每一项之间都有一个“-”隔开 。
接下来 , 咱们用不同的方法将这些内容分别拆分到右侧各列内 , 看看这些方法你都会了吗 。
方法一分列:
学点EXCEL不加班|四种方法都挺好,EXCEL字符拆分
文章图片
分列的优点是各版本均可使用 , 操作简单效率高 。
缺点是数据源变化后 , 结果不能自动更新 , 需要重新分列处理 。
方法二快速填充:
学点EXCEL不加班|四种方法都挺好,EXCEL字符拆分
文章图片
快速填充适合处理规律性比较高的数据 , 优点是操作便捷 , 缺点是数据源变化后 , 结果同样不能自动更新 , 需要重新处理 。 而且在2013以前版本中不可用 。
方法三PowerQuery:
学点EXCEL不加班|四种方法都挺好,EXCEL字符拆分
文章图片
此方法操作简单 , 而且在数据源发生变化或是增加数据后 , 只要右键刷新一下就好 , 不需要重复操作 。
使用Excel2010或是2013的小伙伴 , 可以通过安装PowerQuery插件实现 , 2016及以上版本的就是内置功能了 。
方法四函数公式:
B2单元格输入以下公式 , 向下向右拖动 。
=TRIM(MID(SUBSTITUTE($A2,"-",REPT("",99)),COLUMN(A1)*99-98,99))
学点EXCEL不加班|四种方法都挺好,EXCEL字符拆分
文章图片
使用函数公式 , 能够在数据源变化后自动更新结果 。 缺点是编辑比较复杂 , 而且在数据量大的情况下 , 计算效率比较低 。
下面咱们简单说说这个公式的意思:
1、REPT函数的作用是按照给定的次数重复显示文本 , REPT("",99)部分也就是将""(空格)重复99次 。
2、SUBSTITUTE函数的作用是在文本字符串中用新字符串替代旧字符串 。
SUBSTITUTE($A2,"-",REPT("",99))的意思是将$A2单元格中的字符"-" , 都替换成99个空格 , 这样做的目的就是相当于将各段字符之间的距离给拉宽了 。
3、COLUMN(A1)*99-98部分 , 由于COLUMN函数的参数A1使用了相对引用 。 在公式向右复制时 , 公式会变成:
COLUMN(B1)*99-98
COLUMN(C1)*99-98….
得到的结果是1,100,199…..这样的一个递增序列 , 作为MID函数的参数 。
4、MID函数用于返回文本字符串中从指定位置开始的特定数目的字符 。
MID(SUBSTITUTE($A2,"-",REPT("",99)),COLUMN(A1)*99-98,99)
也就是对SUBSTITUTE($A2,"-",REPT("",99))返回的结果分别从第1位、第100位、第199位开始截取 , 截取的长度为99个字符长度 。
5、最后用TRIM函数清除文本中多余的空格 , 得到相应的科目内容 。
好了 , 今天分享的内容就是这些吧 , 祝小伙伴们周末好心情!
【学点EXCEL不加班|四种方法都挺好,EXCEL字符拆分】图文作者:张楠老祝