我的情况:我从一家产品制造商那里得到了一份巨大的 Excel 表,用于我的网上商店。格式如下:
product ID | price | name | ...
制造商每周都会向我发送一份包含新产品的更新列表。所以我需要知道列表中哪些产品是新产品。所以我需要一段代码片段,它可以执行以下操作:
- 我要将旧的产品列表插入 Sheet1 中(手动)
- 我将手动在 Sheet2 中插入新的产品列表
- 比较 Sheet1 和 Sheet2 的产品 ID
- 将新列表(Sheet2)中旧列表(Sheet1)中不存在的产品(行)插入 Sheet3 中
因此 Sheet3 中的结果将是所有新产品。希望您能为我指明正确的方向。
问候
答案1
我认为你可能需要这样的东西:
=VLOOKUP(Sheet1!A1:A100,Sheet2!A1:F100,6,FALSE)
当然您也可以使用带有按钮和各种奇特东西的 VBA 来解决这个问题。
答案2
实际上,我会使用 Microsoft 的 PowerQuery 插件以完全不同的方式执行此操作,但我不知道它在 Excel 2010 上运行得如何(它在 Excel 2007 上不起作用)。使用它,您可以对产品 ID 进行分组附加查询,以便获得唯一的列表。
另一种方法是将工作表保存在不同的文件中,然后使用 Excel 查询工具对两个表进行连接查询以生成新表。
无论哪种方式,一旦您有了新表,就可以将其保存以准备进行下一次合并。
答案3
在Sheet2
(更新项目)中,添加 D 列,用于检查产品是否是新的:
=MATCH(A2,Sheet1!$A:$A,0)>0
添加 E 列,为TRUE
D 列中的值提供唯一标识符
=D5&COUNTIF(D$2:D2)
现在转到Sheet3
(新项目)并在 E 列中放置一个索引列,其值为TRUE1
、TRUE2
等等TRUE3
,数量根据您认为需要而定(例如,如果有一天有 20 个新项目而您只增加了TRUE15
,那么您会错过 5 个项目)。
然后,您可以通过以下方式引入新物品:
=INDEX(Sheet2!A:A,MATCH($E2,Sheet2!$E:$E,0))