非技术用户比较 excel 中大文件集的有效方法

问题描述 投票:0回答:1

我有 800 万条记录,其中包含从数据库导出为 .csv 文件的订单详细信息。我将获得多个 txt 文件,每个文件的订单号至少为 800 000。我必须检查 txt 文件中的每个订单号是否存在于 DB 文件中。

挑战:

  1. 这必须以即使是非技术用户也可以执行的方式自动化。
  2. 由于数据集庞大,需要一种高效的方法。

由于它必须是一个即使是非技术用户也应该使用的工具,所以我无法想到除了在 Excel 中使用宏之外。如果有更好的选择请建议我。

而且我确信在这种情况下宏不会有效。

excel vba database dataset data-analysis
1个回答
0
投票

PowerQuery 将成为您的朋友。电报风格的步骤:

  1. 菜单 > 数据 > 来自文本/CSV => 选择 8m 行的主文件
  2. 单击“Transform”=> 这将在 Powerquery 中加载文件
  3. 为了提高性能,您可以保留具有顺序的列(或最终结果中所需的所有列)=>主页>选择列>选中复选框。
  4. 首页 > 关闭并加载 > 加载到“仅连接”

将其他 CSV 保存在另一个目录中并重复这些步骤,但在第一步中选择“数据”>“获取数据”>“从文件”>“从文件夹”。

进入 powerquery 后,删除不需要的所有列并展开(列名称旁边的双箭头)“内容”列。 => 所有 csv 现在将合并在 1 个大表中。

转到主查询并选择“主页”>“合并”> 在两个查询中选择订单号>“左连接”。 在结果表中展开列并选择至少 1 列,空行将是不匹配的,有数据的是匹配的。

您可以过滤空白(列旁边的箭头)并选择“主页”>“关闭并加载”>“表格/新工作表”。

匹配的表将被加载到PQ。

注:

  • 要进行设置,最好使用较小的文件,一旦工作正常,请尝试导入完整的 CSV。
  • 可以通过设置数据类型等来提高性能..
  • 设置完成后,您可以通过自动化或允许用户设置文件位置等来增强模型。
  • 使用时,用户只需更新 CSV 文件并点击“数据”>“刷新”。
© www.soinside.com 2019 - 2024. All rights reserved.