在 Excel 中比较两张表并将差异提取到其他第三张表

在 Excel 中比较两张表并将差异提取到其他第三张表

我的情况:我从一家产品制造商那里得到了一份巨大的 Excel 表,用于我的网上商店。格式如下:

product ID | price | name | ...

制造商每周都会向我发送一份包含新产品的更新列表。所以我需要知道列表中哪些产品是新产品。所以我需要一段代码片段,它可以执行以下操作:

  • 我要将旧的产品列表插入 Sheet1 中(手动)
  • 我将手动在 Sheet2 中插入新的产品列表
  • 比较 Sheet1 和 Sheet2 的产品 ID
  • 将新列表(Sheet2)中旧列表(Sheet1)中不存在的产品(行)插入 Sheet3 中

因此 Sheet3 中的结果将是所有新产品。希望您能为我指明正确的方向。

问候

答案1

我认为你可能需要这样的东西:
=VLOOKUP(Sheet1!A1:A100,Sheet2!A1:F100,6,FALSE)

来源:https://stackoverflow.com/questions/15396677/excel-compare-two-cell-from-different-sheet-if-true-copy-value-from-other-cell

当然您也可以使用带有按钮和各种奇特东西的 VBA 来解决这个问题。

答案2

实际上,我会使用 Microsoft 的 PowerQuery 插件以完全不同的方式执行此操作,但我不知道它在 Excel 2010 上运行得如何(它在 Excel 2007 上不起作用)。使用它,您可以对产品 ID 进行分组附加查询,以便获得唯一的列表。

另一种方法是将工作表保存在不同的文件中,然后使用 Excel 查询工具对两个表进行连接查询以生成新表。

无论哪种方式,一旦您有了新表,就可以将其保存以准备进行下一次合并。

答案3

Sheet2(更新项目)中,添加 D 列,用于检查产品是否是新的:

=MATCH(A2,Sheet1!$A:$A,0)>0

添加 E 列,为TRUED 列中的值提供唯一标识符

=D5&COUNTIF(D$2:D2)

现在转到Sheet3(新项目)并在 E 列中放置一个索引列,其值为TRUE1TRUE2等等TRUE3,数量根据您认为需要而定(例如,如果有一天有 20 个新项目而您只增加了TRUE15,那么您会错过 5 个项目)。

然后,您可以通过以下方式引入新物品:

=INDEX(Sheet2!A:A,MATCH($E2,Sheet2!$E:$E,0))

相关内容