Excel 365 - 从数据库动态导入数据到 Excel

Excel 365 - 从数据库动态导入数据到 Excel

我有一个大约有 40k 行的电子表格,每周都会添加。每行都有员工 ID、员工班次号和工作时长列(请参阅附图中的样本数据)。样本数据

问题是,我必须使用 SQL 从一个已设置 ODBC 链接的数据库中计算出工作时间(查询如下:

SELECT hours_worked FROM employee_hrs WHERE employee_id = <employee id in excel> and shift_no = <Shift Number in excel>

我的第一反应是使用 Power Query 将整个数据库表导入单独的工作表,然后使用 2 个条件索引和匹配来查找合适的房子。 问题在于数据库表有大约 400k 条记录(并且还在增加),所以这种方法效率不高,而且速度非常慢,因为我最终也使用数组公式进行查找。

是否有更好、更有效的方法来做到这一点,以便使用上述标准填充工作时间列?

非常感谢您付出的时间和帮助!

答案1

  1. 针对包含“员工 ID”和“班次号”的 Excel 表创建查询,将其命名为查询 1。使用主页 > 关闭并加载到 > 仅创建连接

在此处输入图片描述

  1. 针对数据库表创建一个查询,例如 Query2,返回尽可能少的记录和列。使用 Home>Merge 查询并按如下方式配置:

在此处输入图片描述

然后使用“主页”>“关闭并加载”将结果放入工作簿中的新工作表中。

这样,您的 Excel 表就变成了外部数据库表,而您的查询就是视图。当 Excel 表更新时,您可以刷新查询。您不必使用数组公式、vlookup 等

相关内容