欢迎光临散文网 会员登陆 & 注册

使用PowerQuery、工作表函数、ExcelVBA处理同一件事

2023-08-04 16:37 作者:孙兴华zz  | 我要投稿

网友提问:

放大图片

回答网友问题:

您是7月28日跟我要的课件,您8月2日咨询我这个问题,真的是太快了,这么短的时间是学不到这么多了,我今天给您答案,但是,以现在的进度您是很难理解代码的。

不同语言有不同的优势和劣势,这件事,PowerQuery比VBA优势大,两个方法我都告诉您

一、PowerQuery方法

1、导入2张表

2、对成绩表做分组依据

【转换】-【分组依据】

这时成绩表显示成如下样子

然后点击汇总表,再点【主页】~【合并查询】~【合并查询】

选择成绩表,用鼠标选两张表的姓名列,左外,确定

汇总表会显示如下样子

用鼠标点击 ,展开指定列

返回结果

最后,【添加列】~【条件列】

如图选择和填写,最后点确定

返回结果:

二、工作表函数方法




PS: 如果使用Sumifs函数,请先确认成绩表中的分数列所有数字是数值类型,不要在设置单元格那里,要把分数列复制,右键~选择粘贴~以数值粘贴。如果在这一列中有部分是文本类型的值,可能会造成结果错误。

三、ExcelVBA方法

PS: ExcelVBA可以调用工作表函数,但是我这里调用工作表函数就没有讲VBA方法的意义了

但是!用ExcelVBA做这件事,如果用到数组+字典,那代码的意义何在?速度也没有真正的快起来。可以参考这篇文章

https://www.bilibili.com/read/cv23460505

或者ExcelVBA第二季第22集最后一个案例

但是,我说过字典和数组在大多数情况下可以被代替

我们只需要知道文件在哪里?再会写一句SQL语句,就搞定了

在ExcelVBA第二季  第21集  提供了现成的利用ADO中使用SQL语句实现表关系处理的模板

这些知识在AccessVBA中都有非常详细的讲解,同时我不建议大家利用Excel去操作其它数据库。

代码我们只需要修改两处,一处是路径,一处是SQL语句

代码看着多,我就写了2句,就搞定了,而且敢多,在ExcelVBA中,使用SQL比其它方法快。数据少时显不出来,数量大了就体现出来了。

而且SQL语句,哪怕你不学SQL,看一个星期Access基础篇,这种简单的应用,点点鼠标就能得到SQL语句

代码如下:

只是在处理不同的事情时,不同语言有不同优势,不存在哪个语言好的言论。

Powerquery教程:https://www.bilibili.com/video/BV1oa4y1j75e

Excel工作表函数教程:https://www.bilibili.com/video/BV1Z7411c7U6

ExcelVBA教程:https://www.bilibili.com/video/BV1rt4y1a72y

Access教程:https://www.bilibili.com/video/BV1tf4y117Sh

使用PowerQuery、工作表函数、ExcelVBA处理同一件事的评论 (共 条)

分享到微博请遵守国家法律