vba比较两列并从第三列返回匹配列单元格的数据

时间:2019-02-28 08:34:51

标签: excel vba

我有一本包含两张纸的工作簿,分别是“主文件”和“鼠尾草”

主文件

Column B: a a a v d g b d x a x a  
Column C: 3 6 3 6 3 6 5 6 2 8 6 2

圣人

Column D:  a a v d g b d x a x z
Column E:  5 2 0 1 9 4 5 6 2 3 2

我想将D列与C列进行比较,找到匹配项,并从E列中将匹配数据的值粘贴到主文件中

主文件

Column B: a a a v d g b d x a x a 
Column C: 3 6 3 6 3 6 5 6 2 8 6 2

Column F: 5 2 2 0 1 9 4 5 6   3  

1 个答案:

答案 0 :(得分:0)

通过以下假设,这是 NON-VBA 的可能性:

  • 您要比较列 D 与B而不是 C
  • 您要在B列中找到值的 nth 个匹配项

我用公式:

{=IFERROR(INDEX($E$1:$E$11,SMALL(IF(B1=$D$1:$D$11,ROW($D$1:$D$11)),COUNTIF($B$1:B1,B1))),"")}

注意,这是一个数组公式,因此请确保通过 Ctrl + Shift + Enter

输出如下:

enter image description here

您必须根据需要调整范围和图纸参考。

祝你好运。

P.S。最佳实践甚至可能是在运行=IF()条件(公式上方)之前放入TRUE语句进行测试。像这样:

{=IF(COUNTIF($D$1:$D$11,B1)>=COUNTIF($B$1:B1,B1),INDEX($E$1:$E$11,SMALL(IF(B1=$D$1:$D$11,ROW($D$1:$D$11)),COUNTIF($B$1:B1,B1))),"")}

这可能对要计算的大量数据有很大的影响!