ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 1140|回复: 6

[求助] PQ如何实现滚动追加记录?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2020-7-1 00:49 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
最近在考虑在工作中使用PQ替代VBA的可行性,遇到一个场景,具体如下:
每天有个日报表,该报表是每天自动更新,保持同一个文件名,覆盖旧文件(T-1日)后保存到本地盘上的固定位置,现在的要求是在每天下午固定时刻把这个日报表的当天数据读进来,按日期上下堆叠,以便于在未来(如月底)直接调用分析。
经过多番尝试,PQ只能够实现读入当日报表,如读入6月1日报表后,第二天数据源更新后,6月1日数据丢失,被替换为6月2日的数据,我尝试过将6月1日的数据复制粘贴到工作表中,建立表(命名为Table1),再将Table1作为数据源读入PQ,命名为Query1,同时建立读取6月2日数据的Query2,在Query1上执行Append query,将Query2合并到一起,我希望能够用Query1合并Query2后的结果更新Table1的数据,然后在6月3日就循环滚动起来。

但是,在打算将结果输出到Table1区域时,PQ会报错,大意是不能直接刷新数据源。考虑原因,估计是PQ会认为这样将Query的结果反回去刷新到数据源区域,会产生循环引用的问题,但是如果不这样操作,似乎就无法实现历史数据的保留及滚动追加。

想请教坛内大侠们,不知上述的思路是否有问题?如果上面的思路不行,我将Query1+Query2的结果输出到另一个Sheet(假如为Sheet2的Table2区域),然后用VBA强行去删除掉Query1的数据源(Sheet1上的Table1区域),将Sheet1整体删除,再将Sheet2改名为Sheet1,将Table2改名为Table1,不知是否可行?

如果上述两个办法均不可行,是不是PQ就确实无法达到这样的效果了?那这样就只能用VBA或者用Access来处理了。

感谢大家!


TA的精华主题

TA的得分主题

发表于 2020-7-1 11:41 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
将每天的日报表,放到一个固定的文件夹内,然后用PQ加载这个文件夹,应该就不会被覆盖以前的日报表了,只要PQ一刷新就会把新增的日报表统计进去的。

TA的精华主题

TA的得分主题

发表于 2020-7-1 17:36 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 libo5563 于 2020-7-1 17:55 编辑

PQ做不了吧,第一天,数据源是当天数据,将数据源获取放入sheet1,用vba考一份放入另一个备份sheet里,第2天,数据源获取到sheet1改成当天的数据了,再用VBA将数据接到备份sheet下面,每天重复,pq去获取备份sheet里的文件,VBA不会,大概是这意思吧,     每天要做的,先获取当天数据到sheet1(这个pq可以做),当天数据考到前一天下面备份sheet里(这个,pq做不了吧,读一个表,返回到它本生去覆盖?),重新获取考好的数据做分析,感觉就是如何让前一天的数据固定下来              再不。就先建31个sheet,准备将1号数据放1里,2号数据放2里。。。。,问题是判断哪天数据好办,pq返回表放哪个sheet里,不受控制,当天数据先放到一个固定的位置,VBA通过判断日期,将这个返回的表考到相应的sheet里,不知道VBA能干这活不。


TA的精华主题

TA的得分主题

发表于 2020-7-2 19:14 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
PQ中简单的滚动追加是可以实现的,要用到查询的自我引用。
以下网址可以去看看,应该能弄出来。
"https://datachant.com/2019/11/04/guest-story-simple-database-power-query/"

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-7-5 00:50 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
tony@cq 发表于 2020-7-1 11:41
将每天的日报表,放到一个固定的文件夹内,然后用PQ加载这个文件夹,应该就不会被覆盖以前的日报表了,只要 ...

嗯,我试试直接从文件夹读取的功能。平常文件夹读取功能用得比较少,我一直以为创建连接时的文件清单在创建连接后就不能改变了。

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-7-5 00:53 | 显示全部楼层
libo5563 发表于 2020-7-1 17:36
PQ做不了吧,第一天,数据源是当天数据,将数据源获取放入sheet1,用vba考一份放入另一个备份sheet里,第2 ...

对,核心就是需要让前一天的数据固定下来,至于包含原始数据的日报表是覆盖还是新建,都可商量。VBA有个问题就是在给其他人用的情况下,常常会有宏安全性的问题,所以想尽量避免用VBA。4楼的方法有点意思,创建自引用的连接,回头试试看。

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-7-5 00:54 | 显示全部楼层
飞天篮球猪 发表于 2020-7-2 19:14
PQ中简单的滚动追加是可以实现的,要用到查询的自我引用。
以下网址可以去看看,应该能弄出来。
"https:/ ...

谢谢,链接我打开看了,应该可行,赞!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-15 12:27 , Processed in 0.041335 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表