|
![](https://clubstatic.excelhome.net/image/common/ico_lz.png)
楼主 |
发表于 2018-2-24 20:27
|
显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
本帖最后由 zhusong1998 于 2018-2-24 20:40 编辑
上述几位大侠的努力,给了我很大的提示,那就是找出规律来,包含年份的格式有两种。
格式一:
这种格式是日期在学校名称的下面一行,这种格式的特点是编号都等于四位数,且年份的后面招生计划人数都为空。
格式二:
这种格式是日期在学校名称同一单元格的后面。
由于数据异常的多,多达四十页、数万条数据,且学校名称也仅有两类,一类叫“大学”、一类叫“学院”。都去一一手动调整格式,这个工作量非常大,所以我还是想着使用IF函数把两种格式、不同类别的学校给找出来。
实现的思路如下,由于本人的函数使用的不好,只能分步实施,请各位大侠斧正。
第一步:在编号及学校名称之间插入两列,一列是年份(C列),一列学校名称(D列)
第二步:数据后面插入两列辅助列,用以识别年份在哪,识别学校类别用以查找学校名称并提取学校名称。
在G2输入=COUNT(RIGHT(E2,2))并填充,如果为“0”,则单元格后面没有年份,如果为“1”则单元格后面有年份。
在F2输入=IFERROR(LOOKUP(,0/FIND({"大学","学院"},E2),{"大学","学院"}),"")并填充。
第三步:提取年份及学校名称
在C2中输入=IF(F3=0,RIGHT(E3,2)&"年",IF(G2=1,RIGHT(E2,2)&"年","")),提取出来年份
在D2中输入=IF(H2="大学",MID(E2,1,FIND("大学",E2,1)+1),IF(H2="学院",MID(E2,1,FIND("学院",E2,1)+1),IF(H2="",""))),提取出来学校名称。
第四步:删除B列或F列包含空值的行,公式转成值,再使用定位空值填充即可完成。
由于有四十多页,我就把这个录制成宏,在每个文件中运行一下宏,四十多个文件也就可以轻松完成。
再次感谢各位大侠的帮助,祝新年愉快。
sndtacd32 - 副本.rar
(18.04 KB, 下载次数: 2)
|
|