我有一个电子表格,我需要将两列匹配在一起。但是“Dove代码”是3600行,“代码2”是1100.它们都具有您在图像中看到的相同代码,但您也可以看到它开始更改的位置,我需要将代码全部排列,所以我可以看到差距。我已经按字母顺序排列了它们,并且它的“代码2”需要与“鸽子代码”相匹配
答案 0 :(得分:3)
如果上述解决方案导致过多的分流并且vba不是一种选择,那么还有另外一种方法。复制第一列并在其上使用“删除重复项”。现在你有一个索引列表,在右边的列中放置从1到x的数字。
在两个列表之间插入一列,在第二个列表右侧插入一列。
假设索引列表在F中且数字在G中,请将此公式放在较大列表中第一个单元格的右侧单元格中: = VLOOKUP(A2,$ F $ 2:$ G $ 500,2,FALSE)
相应地调整范围。将相同的公式放在较短列表中第一个单元格右侧的单元格中,当然C2而不是A2。将两个formule复制到列表的末尾。
现在两列的每一行都有一个索引。您可以使用数据排序来匹配它们,但为此您需要在索引列中添加虚拟对象。
将此公式放在基本索引列表右侧的单元格中:= countif(B:B,G2) 在右边的那个单元格中:= countif(D:D,G2)
现在您知道两个列表中每条记录出现的次数。只需手动添加额外的数字,这样两个公式都会产生相同的结果。你应该能够非常快速地做到这一点。如果您有200条记录在第一列中使用了2次而不是在第二列中,则只需复制这200条记录的索引并将其粘贴两次。 countif将自动更新。 您可以使用额外的列来计算两个计数之间的差异,并使用基本索引列表上的数据排序来对差异进行排序。
之后只需使用数据排序。
如果我的指示足够清楚,这不应该花费你超过10分钟。
答案 1 :(得分:0)
如果没有VBA,我会通过在帮助列中添加=INDIRECT("A"&ROW())<>INDIRECT("B"&ROW())
等公式来执行此操作(对于具有有限数量不匹配的列!)。向下工作,每当你看到一个真正的分流时,适当的列向下以适应。但它可能只有1100行可行!