原来只要变更一下数据源的表结构

前两天在外地出差的时候,收到来自于线上课程《Office高效办公秘诀之邮件合并》的学员W的问题咨询:

甘老师,您好,请问我现在要给全国32个省区市发通知,他们每个省区市都有2-3个人,参加我们单位举办的3-4个学习班的学习,撰文的格式大概是:+++省:请你省+++,+++参加+++班,++++,+++参加+++班,这样的如何实现邮件合并?

刚刚看到这个问题的时候,正好是在赶往机场的路上,也没有仔细看清W的需求,简单的理解成要输出的结果是:+++省张三、李四、王五参加A课程、B课程、C课程,当即回复了W,让他设置Excel数据的表格结构为:

省份、姓名、课程三列,之后参加人员列输入2-3位名字例如:张三、李四、王五,课程列输入3-4个课程名称,例如:A课程、B课程、C课程,之后用信函型邮件合并格式即可实现需求。

仔细一想发现这样操作的话,无法将每个人对应到其报名的相应课程。之后我又想到了第二种思路,就是把每个人的数据分成不同行的方式输入,比如:

省份 姓名 课程

广东 张三 公文写作

广东 李四 公文写作

广东 王五 演讲技巧

之后用在《Office高效办公秘诀之邮件合并》课程中有一个小节介绍利用Power Query分组合并数据的功能,将数据按照不同的省份进行分组合并。但这样的话,数据汇总之后的表格就会变成如下的结构:

省份 姓名 课程

广东 张三,李四 公文写作

广东 王五 演讲技巧

发完了这个回复给W之后,我就上飞机了。在飞行过程中我突然想到刚刚的表格结构,同一个省份就会有多行数据,就需要使用一对多邮件合并了的方式来操作了。一对多邮件合并只能把同一个省份的不同人的数据写在不同行或不同列,无法写在同一行中。有没有更简单的方法来实现这个需求呢?开发这门课程的初衷,就是力求以简单高效的方式来实现批量文档的制作与生成。

我想了一会没有比较好的思路,之后干脆先把这个问题放一边,好好在飞机上休息一下。等我下飞机的时候,突然有了我们常说的 “啊哈”的灵光一现。我发现解决方案竟然如此之简单,我只要把表格结构变更一下即可轻松实现W的需求了。

image.png

猜你喜欢

转载自blog.51cto.com/15061401/2588752