在Excel中搜索重复的单元格

在Excel中搜索重复的单元格,excel,oracle,excel-formula,Excel,Oracle,Excel Formula,我将订单项目表的数据列存储在Excel文件中。该表大约有100万行长,包含item_id、order_id、price和quantity列。除此之外,我还有一个Oracle数据库,它是这样构建的,主键由item_id和order_id组合而成 当我尝试将数据导入Oracle表时,会出现违反主键的错误。由于我随机生成了表数据,因此可能会出现百万行的情况,其中一个订单多次包含同一产品 我可以按任意一列对数据进行排序,但我不想手动浏览所有这些百万行,所以有谁能告诉我在excel中查找多行最简单的方法是

我将订单项目表的数据列存储在Excel文件中。该表大约有100万行长,包含item_id、order_id、price和quantity列。除此之外,我还有一个Oracle数据库,它是这样构建的,主键由item_id和order_id组合而成

当我尝试将数据导入Oracle表时,会出现违反主键的错误。由于我随机生成了表数据,因此可能会出现百万行的情况,其中一个订单多次包含同一产品


我可以按任意一列对数据进行排序,但我不想手动浏览所有这些百万行,所以有谁能告诉我在excel中查找多行最简单的方法是什么,这些行具有相同的item_id(标记为A)和order_id(标记为B)列。

使用COUNTIFS非常简单

我假设第1行是标题行,E是下一个空白列

在E2中,使用公式

  =COUNTIFS(A:A,A2,B:B,B2)
把这个公式填到下一列

列E>1中的任何项都是在该顺序上出现多次的项

请注意数量和价格差异,在删除重复行之前,您可能希望将行合并为1

如果删除重复项,则公式将更新为1

请记住您使用的是计数-因此,具有相同项目id和订单id的所有行的计数都将大于1,而不仅仅是找到的第二行(或更多行)

(因此,不要直接删除所有这些行,因为您将删除原始行和DUP)

从第一原则考虑这一点表明排序是一个好主意,因为Excel的排序算法很快,应该在NlogN(基本2)中执行时间,所以您将谈论一百万行的20000000个操作,这将需要几秒钟的时间来运行

因此,首先对项目ID和订单ID进行联合排序

然后,您可以使用线性比较方法来检测重复的行,使用如下公式

=AND(A2=A1,B2=B1)

我发现做类似事情的一种方法是通过透视表。现在我可以将所有项目按相同顺序分组。尽管如此,我仍然有100000份订单,我希望从中排除没有重复的订单。更好的方法是将数据导入到临时表中,然后您可以在将其加载到目标表之前运行simpole查询以查找重复的订单。这似乎是正确的解决方案,虽然它可能需要很长时间才能通过所有的行。我让它运行了一段时间,但它没有超过0%的标记。由于计算1000行大约需要1分钟,所以我不想知道一百万行需要多长时间。似乎我必须回到数据生成阶段,并在那个阶段解决这个问题。我的笔记本电脑花了3分钟完成1000000行,一旦完成,就可以复制/粘贴该列的特殊值。你想要一个VBA解决方案,它会更快吗?