博文

目前显示的是 一月, 2018的博文

通邮件合并实现多行数据合并到一个模板

应朋友之请,要帮她实现一个邮件合并的应用场景。本来,邮件合并是个挺简单的事。但是她的要求却远远超出我对邮件合并的认知。要求是这样的:相同系列的不同产品要放在同一张质量保证书上。每种系列下不超过3个规格。不同系列要分开做质量保证书。WORD的邮件合并对于处理连续单行的数据比较容易,但是对于这种要按某个字段分开处理不太容易。这就是所谓的多行数据合并到一个模板中的问题。 网上搜索了很多教程,看的迷迷糊糊,没有一个真的看懂了。经过一个晚上的反复摸索。总算有了眉目,现将过程记录下来,以防遗忘。 EXCEL文件清单内容如下图。最右列的计数项是添加的辅助列,公式为=if(l2=l3,1,0),也就是判断本行的编号和下一行的编号是否一致。这个非常重要,因为后面的拆分要依靠此列的数据指引。 最终的效果如下图 最终实现域代码如图 下面是具体的操作步骤: 注意:本文中所要求输入的内容中,除了中文外,其他内容均要求在英文半角状态下输入。   先新建一空白WORD文档,然后插入一个多列(根据需求)3行(因为最多只有3个型号,当然,实际使用过程中应该是增加表头行的)的空白表格。然后在“邮件”选项卡中点击“选择收件人”,然后选择“使用现有列表”,找到你保存的EXCEL源文件。打开后,进入正常的邮件合并界面。这一步不多说,因为就是普通的邮件合并步骤,网上教程也很多。  在域代码图所示的第一个空白单元格中,按照常规的邮件合并方法,插入编号字段和规格字段。到这一步为止,所有步骤和普通邮件合并没有任何区别。区别在接下来的步骤中。 在第二行第一个空白单元格中,先按下ALT+F9,然后按CTRL+F9,出现一对大括号{},但这个大括号一定是要通过组合键出来,手工输入是无效的。在大括号中输入set a  ""   ,a可以自己指定其他的名称。在set a “”这三者之间都要有空格。然后将光标定位到“”中间,在菜单中选择“插入合并域”,在列表中选择“计数”字段。这样就会得到{ set a  "{MERGEFIELD 计数}"}这样的代码。 接着,在邮件选项卡下的‘规则’下拉列表中选择“下一条 记录”,如下图 在接下来的对话框 中,域名栏中选择“计数”,比较...

EXCEL 运用SQL语法实现多表合并数据透视

多表合并实现数据透视在EXCEL中实现比较麻烦,但有了SQL的加持,就会非常强大。可惜SQL对于非编程人员还是略有门槛。经过摸索,也经历了多次失败,才总结出一点规律。 下面的代码其实作用是提取多个表(这里只用两个表为例)的其中指定的字段数据进行合并且构造出一个新的表。 select 单位名称,金额,"2017-12" as 月份 from [2017.12$a:h] union all select 单位名称,金额,"2018-1" as 月份 from [2018.1$a:h] 可以实现提取部分字段重新组织数据。但如果[2017.12$]这里不加入具体范围的话,经常会出现打开数据库错误的提示。经过多次尝试,发现在这里加入数据范围,错误就解决了。