【发布时间】:2019-02-13 16:46:44
【问题描述】:
我有一个 Excel 工作表,其中包含订单的部件号。我想查询零件的 SQL 表以查看每个零件是否已经存在,如果不存在,则在单元格中显示“新建”。我已经通过将 part_number 列从 sql 导入到 excel 来做到这一点,然后在 VLOOKUP 上使用 IFERROR 来显示消息。
随着工作表越来越大,越来越多的工作人员通过 VPN 远程访问,刷新 part_number 下载所需的时间成为一个问题。
有没有办法使用 Excel 中的 sql 查询,使用 past_number 单元格,返回一个我可以用 IF 或其他东西测试的值?需要遍历 excel 工作表中的每一行,还是我可以更“设置”为导向?
【问题讨论】:
-
第一次查询表时为什么不将其作为人工列包含在内?
-
我认为“遍历每一行并查询数据库以查找匹配项”将比仅拖动部分并进行 vlookup 慢得多。您的另一个选择是在 sql server 上创建一个临时表,将您的 excel 表加载到其中,然后查询以查看现有 SQL 表中缺少哪些表并将结果发回。对于@TabAlleman,这个“包含订单零件号的表格”来自哪里?如果它来自同一个 sql server,那么您可以在将结果转换为 excel 之前执行此查询。
-
对不起大家,我看到我问这个的方式很混乱。我有一个带有 part_numbers 的 EXCEL 订单表,我需要根据 SQL 中的零件号表进行验证。目前,我将 SQL 表中的零件编号列导入到 EXCEL 中的隐藏选项卡中。然后,我在订单表的单元格中使用公式通过 SQL 导入来查找隐藏选项卡。我想看看我是否在不从 SQL 导入零件号的情况下做同样的事情,而是查询 SQL 表以查看零件是否已经存在。
-
Excel 没有表格,它有工作表。这就是混乱的根源。
-
我认为您只是在低效地存储数据。您应该将跨国数据存储在数据库表中。这允许针对较小的参考数据集(即产品数据和定价等)快速有效地查询和检查大量数据。
标签: sql-server excel