Excel - 在列中查找除当前行中的值之外的值

时间:2016-06-17 13:00:26

标签: excel excel-formula

我的工作簿如下......

     Col# -> 1     2           3       

 Row #
   1         5     London      
   2         6     Paris   
   3         4     New York  
   4         2     Joburg  
   5         1     Oslo  
   6         5     Rio  

我想要做的是,对于第3列中的每个单元格,仅在另一列1值与当前行的值匹配时返回第2列条目(否则不返回任何内容)。 例如,在第1行第3列中,我希望看到'Rio'即匹配第1行,第1列与第1列中的另一个相同值作为第1行(即'5')并返回第2列值(Rio)。 在第6行第3行,我希望通过匹配第1行,第6列和Rio行的第1列的另一个相同值(即“5”)并返回第2列值伦敦来查看“伦敦”。

我一直在努力解决这个问题,我认为它需要某种匹配/查找公式来匹配当前行的第1列中的值。即,当评估第1行第3列时,我只想在第6行,第1列中找到'5',然后返回Rio,而不是找到正在计算公式的当前行的'5'。 VLOOKUP和INDEX / MATCH将找到第一个值或所有值,(我都不想要)

2 个答案:

答案 0 :(得分:0)

此代码仅为六行示例:

Sub TEST()

For i = 1 To 6
For j = 1 To 6

If i <> j Then

If ActiveSheet.Cells(j, 1).Value = ActiveSheet.Cells(i, 1).Value Then
ActiveSheet.Cells(i, 3).Value = ActiveSheet.Cells(j, 2).Value

End If
End If
Next j
Next i



End Sub

尝试并告知您是否需要更多帮助。

答案 1 :(得分:0)

由于A列中的数据永远不会超过一个值的两个实例,因此以下是我提出的公式:

=IF(
COUNTIF($C$1:$C1,LOOKUP(2,1/($A$1:$B$10=$A2),$B$1:$B$10))<1,
LOOKUP(2,1/($A$1:$B$10=$A2),$B$1:$B$10),
INDEX($A$1:$B$10,MATCH($A2,$A$1:$A$10,0),2)
)  

将此公式放在单元格C2中并向下拖动,您将获得结果,如下所示:

enter image description here

如果您发现任何问题,请告诉我。