在excel中对一列进行排序以匹配另一列
我有一个电子表格,我需要将两列匹配在一起。然而,“鸽子代码”是3600行,“代码2”是1100行。他们都有相同的代码,你可以看到在图像中,但你也可以看到它开始改变,我需要有所有的代码线,以便我可以看到的差距。我已经把它们按字母顺序排列好了,它的“代码2”需要和“鸽子代码”匹配在excel中对一列进行排序以匹配另一列,excel,vba,Excel,Vba,我有一个电子表格,我需要将两列匹配在一起。然而,“鸽子代码”是3600行,“代码2”是1100行。他们都有相同的代码,你可以看到在图像中,但你也可以看到它开始改变,我需要有所有的代码线,以便我可以看到的差距。我已经把它们按字母顺序排列好了,它的“代码2”需要和“鸽子代码”匹配 如果没有VBA,我可以通过添加一个公式(例如=INDIRECT(“a”&ROW())INDIRECT(“B”&ROW())来执行此操作(对于不匹配数量有限的列!)在助手列中。向下操作时,每次您看到一个真正的列时,都会将相应
如果没有VBA,我可以通过添加一个公式(例如
=INDIRECT(“a”&ROW())INDIRECT(“B”&ROW())来执行此操作(对于不匹配数量有限的列!)
在助手列中。向下操作时,每次您看到一个真正的列时,都会将相应的列向下分流以适应。但它可能仅适用于1100行!如果上述解决方案会导致太多分流,并且vba不是一个选项,则有另一种方法。复制第一列并在其上使用“删除重复项”。现在您有了索引列表,将从1到x的数字放在其右侧的列中
在两个列表之间和第二个列表右侧插入一列
假设索引列表在F中,数字在G中,将此公式放在较大列表中第一个单元格右侧的单元格中:
=VLOOKUP(A2,$F$2:$G$500,2,假)
相应地调整范围。将相同的公式放在较短列表中第一个单元格的右侧,当然是C2而不是A2。将两个公式复制到列表的末尾
现在,两列的每一行都有一个索引。您可以使用数据排序来匹配它们,但为此,您需要在索引列中添加虚拟对象
将此公式放在基本索引列表右侧的单元格中:=countif(B:B,G2)
右边单元格中的这个:=countif(D:D,G2)
现在,您知道了每条记录在两个列表中出现的次数。只需手动添加额外的数字,以便两个公式显示相同的结果。您应该能够非常快地完成此操作。如果您有200条记录在第一列中使用了2次,而在第二列中没有使用,只需复制这200条记录的索引并粘贴两次即可untif将自动更新。
您可以使用一个额外的列来计算两个计数之间的差异,并使用基本索引列表上的数据排序来对差异进行排序
之后,只需使用数据排序
如果我的指示足够清楚,这不会花费你超过10分钟
编辑:
这里有一个例子:出于好奇,VBA怎么不是一个选项?因为我不知道,它更简单吗。VBA肯定是一个选项。但我认为它不在桌面上,因为没有VBA标记(现在有)。宏可以很快完成此操作,但在使用它之前,您必须考虑如何对其进行编码、编码、测试,然后运行它。当宏工作时,您可以完成我的解决方案两次,甚至更多。