不熟悉的可以看下之前的文章: Excel使用Vlookup函数实现相同类别的文本合并,你知道怎么做的吗 那如果我们想把合并的同类项再拆分回原来的样式,就如下图所示,那又要怎么实现呢? 下面给大家介绍几种实现这种拆分同类项的额方法: 方法一、 分列法 1、首先选中C列数据,点击数据分列,【分隔符号】选择【其他】,输入顿号'、' 2、在C7单元格输入=D2,向右填充至数据最右侧,再下拉至显示数据均为0值时结束,选中B2:B6区域,双击下方的黑色十字,双击填充。 3、使用【选择性粘贴】-【值】,把公式全部转化为数据,再删除D:I列 4、把C列显示为0值的数据删除,按Ctrl+G定位,定位条件选择【常量】,勾选【数字】,点击删除,删除整行。 5、这样表格就整理好了,我们可以再跟原表格内容对比下,确认无误。 方法二、函数法 1、首先我们需要先根据C列的人员清单,确认部门数量,我们在E2输入如下公式,下拉填充E2:E6 =REPT(B2&CHAR(10),LEN(C2)-LEN(SUBSTITUTE(C2,'、',''))+1) 最终生成如下样式: 2、复制E2:E6单元格的内容到新建的WORD中,再把Word中的内容复制回E2单元格,可以看到生成的部门行数和人员名单数一致的。 公式解释: 1、SUBSTITUTE(C2,'、','')把C2单元格的顿号'、',替换为空值 2、LEN(SUBSTITUTE(C2,'、','')函数计算替换后的文本长度 3、再通过计算C2整体文本长度,减去计算去掉顿号'、'的长度,再+1,即得到 每个部门的人员数 4、CHAR(10)换行符 5、REPT函数实现根据每个部门人员数,把C2&CHAR(10)重复 比如REPT(A2,5),即把A2重复5次 3、根据部门名称查找人员名单,我们在F2输入如下公式: =IFERROR(TRIM(MID(SUBSTITUTE(LOOKUP(,0/(B$2:B$6=E2),C$2:C$6),'、',REPT(' ',99)),100*COUNTIF(E$2:E2,E2)-99,100)),'')
1、COUNTIF(E$2:E2,E2),COUNTIF函数实现条件计数,最终实现的是比如人事部实现从1~7,设计部从1~6 2、REPT(' ',99),REPT函数此处是把空格重复99次 3、LOOKUP(,0/(B$2:B$6=E2),C$2:C$6),实现根据E2单元格的部门把对应的人员名单查询出来 4、SUBSTITUTE(LOOKUP(,0/(B$2:B$6=E2),C$2:C$6),'、',REPT(' ',99)) SUBSTITUTE函数是把G列查询的值间的顿号'、',以99个空格代替 5、使用MID函数依次从1,101,201...开始提取100个数,包含空格 6、最后使用TRIM函数去除空格,即为我们需要的值了。 总结: 以上就是给大家分享的拆分同类项的两种方法,分列法简单且易操作,函数相比较复杂,不好理解,需要多多熟悉验证。 |
|
来自: 昵称58195209 > 《办公文档》