前两天在网上看到一个网友小A求助的帖子,具体内容如下:
某公司共有500家分公司,分别为分公司1、分公司2......分公司500。2020年度的内部审计针对这500家分公司展开,并将审计中发现的问题整理到一张Excel中,几乎每个分公司都有问题,或2个、或5、8个、10个,或多或少。每个分公司可能被审了1次、2次甚至3次5次。
年终了,需要将全年的审计问题全部发给500家分公司,并由这500家反馈整改结果,即每个分公司一个审计事实确认书。求大神们指导。十万火急!
类似于这种将一个Excel表格的数据链接到一个或多个Word文档的需求,只需要利用到Word强大的邮件合并功能就可以实现了。只不过有一个需求实现起来有点困难:在审计事实项中同一家公司有多个问题(多行)要输出在Word的一个单元格中。
传统的一一对一邮件合并,每一行Excel的数据,只能输出到一页的Word文档中,也就是问题1在第一页,问题2在第二页,以此类推。
不过,如果你已经订阅了我的线上课程《Office高效办公秘诀之邮件合并》,那这问题都不是问题了,现在我就来给你详细介绍一下解决方案。
步骤1:规范Excel数据源表格的结构和内容
邮件合并要求数据源表格的第一行必须是表格的标题行,红色方框的2行必须删除,才符合邮件合并数据源的规范。
另外,不建议在标题行中以手动换行的方式输入标题,这不利于后面的数据关联。
由于要输出的审计事实的数据是有添加了序号的,所以我们要增加一个带序号的问题描述。你可能会问,为什么不可以直接在Word中使用自动编号功能生成序号,原因是我们在做一对多邮件合并的时候,无法确认每个分类中包含多少行数据,比如A1分公司有6个问题,A2分公司有4个问题,如果有自动序号的话,A2分公司后面多出来的两行多出现5、6、两个空白的序号。
我们可以使用公式:
=COUNTIFS($B$2:B2,B2)&"."&C2生成带序号的问题描述,COUNTIFS是多条件计数的函数,&是用来合并字符串的。
同样用&连接符生成最终输出的Word报告的文件名称,以作为导出的文件名。
好了,现在到了最关键的一项,区分信函型一对多邮件合并的不同分类项的标志。这里我使用了辅助作为这一列的名称,公式为=IF(B2=B3,1,0)。也就是如果当前行和下一行的网点名称相同就输出1,意味着是同一个网点。而如果不相同就输出0,意味着下一行是另一个网点的数据。
到这里Excel表格就是修改完毕了,接下来我们打开要生成的Word文档。
步骤2:插入合并域字段并生成独立Word文档及自动关联Outlook进行邮件群发
以常规的信函型邮件合并插入除审计事实以外的其他合并域字段。
《审计事实确认书》第一行正常插入《带序号的问题描述》,下一行就需要使用《Office高效办公秘诀之邮件合并》中的Enjoyoffice Tools插件的”一对多-插入一对多域字段(信函型)”,勾选“首列字段”。根据最大问题行数,复制多行,完成审计事实数据的一对多的插入。
如果你没有订阅本课程,也可以自己手工输入这些域代码,大括号要通过【CTRL+F9】这组快捷键插入:
之后使用Enjoyoffice Tools中的“合并到不同新文档”,以域名“生成文件名称”作为新文档的名称。
这是生成的文档:
这是A1分公司文档中的具体内容。
如果想要通过邮件附件的方式发送,直接点击“邮件”选项卡中的“发送电子邮件”功能就可以了。
这种发送方式无法输入邮件正文,如果既想要输入邮件正文,又需要插入附件,就需要使用Enjoyoffice Tools插件中的“Outlook插件附件”功能。
像这个数据表中只有两家公司,总共会发送出去2封电子邮件,到这里就实现了小A的需求了。最重要的是这个操作是一劳永逸的,以后只需要变更Excel表格的数据,打开Word文档生成的数据就可以自动更新了。