Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在excel中对一列进行排序以匹配另一列_Excel_Vba - Fatal编程技术网

在excel中对一列进行排序以匹配另一列

在excel中对一列进行排序以匹配另一列,excel,vba,Excel,Vba,我有一个电子表格,我需要将两列匹配在一起。然而,“鸽子代码”是3600行,“代码2”是1100行。他们都有相同的代码,你可以看到在图像中,但你也可以看到它开始改变,我需要有所有的代码线,以便我可以看到的差距。我已经把它们按字母顺序排列好了,它的“代码2”需要和“鸽子代码”匹配 如果没有VBA,我可以通过添加一个公式(例如=INDIRECT(“a”&ROW())INDIRECT(“B”&ROW())来执行此操作(对于不匹配数量有限的列!)在助手列中。向下操作时,每次您看到一个真正的列时,都会将相应

我有一个电子表格,我需要将两列匹配在一起。然而,“鸽子代码”是3600行,“代码2”是1100行。他们都有相同的代码,你可以看到在图像中,但你也可以看到它开始改变,我需要有所有的代码线,以便我可以看到的差距。我已经把它们按字母顺序排列好了,它的“代码2”需要和“鸽子代码”匹配


如果没有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标记(现在有)。宏可以很快完成此操作,但在使用它之前,您必须考虑如何对其进行编码、编码、测试,然后运行它。当宏工作时,您可以完成我的解决方案两次,甚至更多。