前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >自动合并工作簿并提取指定内容作为唯一标识

自动合并工作簿并提取指定内容作为唯一标识

作者头像
wujunmin
发布2021-09-07 17:23:07
8370
发布2021-09-07 17:23:07
举报
文章被收录于专栏:wujunminwujunmin

我们工作中可能会遇到类似这样的电子表格:最前面几行表明该表的关键信息,例如这份虚拟的电子装箱单有收货方、地址、预计到货日期等等;表头下方是明细内容,本次发货有几箱,每箱装了什么产品,产品数量多少(每箱重量信息也应该包含,此处省略)。

一个需求是,要把某一时段发往各店的商品做个汇总统计,生成如下结果。除了包含明细,还应新增列说明这是哪个店的商品,预计什么时候到货。本文尝试使用Power Query做一份自动化的模板。

1.数据导入


将数据源统一放在一个文件夹,在Excel或者Power BI中选择从该文件夹导入数据(Excel 2013在Power Query模块,2016及以上版本在“数据”选项卡下,Power BI在“主页”选项卡“获取数据”。)导入后的结果在Power Query中如下图所示。

单击Content右侧的按钮,系统自动进行处理,生成两部分内容。一部分是自定义函数,对样表进行处理;另外一部分是调用自定义函数合并的所有文件,如下图所示。

这样直接合并后的结果无法使用,除了冗余空行之外,收货方、预计到货日期也不在我们指定的位置,所以要对示例文件进行处理。

2.示例文件数据处理


首先将1-5行全部删掉,然后将第一行用作标题,数据变为非常整洁的样式。

删除前5行

将第一行用作标题

一个新的问题产生,这张表没有收货方标识列,合并后会所有产品混到一起。这个问题通过添加自定义列解决:

代码语言:javascript
复制
=原始样式[Column2]{1}

这个公式看着莫名其妙,并且我们知道在前面的步骤已经把收货方等表头删除了,这里为什么还可以得出正确的结果?

这是因为Power Query记录了每个步骤的操作结果,并且这些结果都可以后续调用。返回到“原始样式”这一步骤,可以看到当时“收货方”这一行还在。它在第二列的第二行,所以上述公式的含义为:

返回原始样式这一步骤生成的表的第二列第二行的值。{1}表示索引的第二位置,{0}是开端。

同理,再次添加自定义列,可以得到样表中的预计到货日期:

代码语言:javascript
复制
=原始样式[Column2]{3}

3.修改汇总结果


基于前面我们对样例步骤进行了修改,汇总的“数据源”查询会报错,删掉“调用自定义函数”后面的所有步骤,重新展开表即可得到正确的汇总结果。


本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-09-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 wujunmin 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
腾讯云 BI
腾讯云 BI(Business Intelligence,BI)提供从数据源接入、数据建模到数据可视化分析全流程的BI能力,帮助经营者快速获取决策数据依据。系统采用敏捷自助式设计,使用者仅需通过简单拖拽即可完成原本复杂的报表开发过程,并支持报表的分享、推送等企业协作场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档