如何快速把层级分明的word文档转换成横向从属结构的excel表格
一、问题描述
文档如下图所示。文档一共三个层次,大纲级别分别是1、2、3级,左则是其文档结构图,可以看出文档层级分明。
最终要将文档转换成如下横向从属结构的表格。一个层次的内容占一列,最末一层次,每一段占一个单元格,各层次按从属关系,层层对应,除了最末一层,每一层都按下一层的行数进行单元格合并。
二、解决办法
第一步 为各层次内容加上制表符
第一层次内容不加制表符,第二层次内容加上一个制表符,第三层次内容加上两个制表符,以此类推。此步可以使用查找与替换快速实现。操作如下图所示。
示例中第一层次内容样式为标题1,第二层次内容样式为标题2,第三层次内容样式为标题3。
知乎视频www.zhihu.com第二步 文本转表格
全选文本,使用word自带的文本转表格功能,以制表符为分隔位置,将文本转换为如下表格。
第三步 把表格粘贴到excel中,充填除最末列外的空白单元格
复制word表格后,以匹配目标格式的方式粘贴到excel中。示例中最末列是第三列,除了了第三列外,第一、第二列的空白单元格需要根据其上一单元格的内容进行充填。快速充填这些不相连的空白单元格需要用定位功能和公式,操作如下图所示。
知乎视频www.zhihu.com第四步 利用条件筛选去掉多余行
将上述表格内容全选,复制,在另一个sheet中粘贴为值,去掉公式。利用“条件格式”--“突出显示单元格规则”—“重复值”,把第一和第二列重复值标记出来,第一列是浅红色充填单元格,第二列字体设置为红色。筛选,第三列的筛选条件为空值,第二的筛选条件为红色字体,第三列条件为浅红色充填。筛选出来的行就是多余的行,删除这些行。
删除多余行后,检查一下除最末列外的内容,是否存在唯一值(未标记颜色的)。如果存在,需要删除该值所在行内标记了重复值的单元格的内容。
把第二列重复值标记出来,是为了应对第二列有内容(即有第二级内容),而第三列无内容(即第三级内容为空)的情况。因为这种情况下,第二列存在唯一值,不会被重复值标记出来。
把第一列重复值标记出来也是类似的原因。如果第一列不存在唯一值,那么“按颜色筛选”选项为灰色不可用。
操作如下图所示。
知乎视频www.zhihu.com第五步 合并重复单元格
利用“分类汇总”、定位空值、格式刷等功能快速合并重复单元格。选中一列数据,如第二列,通过“分类汇总”,生成一个辅助列,汇总结果显示在数据下方,定位该列的空值,然后执行合并操作。删除汇总结果,选中辅助列中合并的单元格,单击格式刷,刷一下数据列完成合并。最后删除辅助列。同样的方法合并其他列重复单元格。
操作如下图所示。
知乎视频www.zhihu.com至此完成word文档内容向excel表格的快速转化。更多层次的文档,转换的方法是类似的。
20200714更新
编写VBA代码,一键转换的方法,请看
阿德:VBA实践+把大纲级别分明的word文档转换成横向从属结构excel表格zhuanlan.zhihu.com