最近遇到一个小需求,如何将Excel单元格中的内容拆分到多行?
下图中左边是原始数据,每位员工需要上班的日期,合并在一个单元格内,日期之间间隔一个空白符;现在需要拆分成表右边所示的样子,即将员工需要上班的日期拆分成一行行数据;
传统的方法可以直接对班期列进行分列操作,再将分列所得数据一行行复制转置粘贴,步骤繁琐麻烦,这里用VBA处理,写好代码,一秒钟搞定,一劳永逸~
话不多说,让我们看下处理效果:
思路
1、先看下数据,是否规律,有迹可循,可以发现班期列皆为日期之间加一个空白符,一个日期为8位数,长度为8;
2、计算每个单元格内日期的个数,这里利用【Int(Len(Sheets("Sheet1").Cells(i, 2)) / 9) + 1】先利用长度函数Len函数计算出单元格的长度;
再将其长度除以9(虽然每个日期的长度是8,但是日期后面皆跟了一个空白字符,所以除以9);
再利用int函数取整,最后结果需要加上1,因为最后一个日期后面没有空白符;
最终得出来的结果就是单元格内部包含的日期个数;如对B2单元格用此函数:INT(LEN(B2)/ 9) + 1=3,返回3;