【问题标题】:Excel - find values in a column except for value in current rowExcel - 在列中查找除当前行中的值之外的值
【发布时间】:2016-06-17 13:00:25
【问题描述】:

我有一个工作簿如下...

     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 将找到第一个值或所有值,(我都不想要)

【问题讨论】:

  • 澄清一下,您想要新列中的值,即第 4 列,对吧?
  • 如果除了你所在的那一行之外还有多行,是否要全部拉回?
  • Manish,是的,将值添加到新列中,4。
  • 艾伦,在我的用例中,第 1 列中相同的数字不应该超过两个,所以只需要找到另一个相同的值

标签: excel excel-formula


【解决方案1】:

此代码仅为六行示例:

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

如果您需要更多帮助,请尝试并告知。

【讨论】:

    【解决方案2】:

    由于您在 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中并向下拖动,您将得到结果,如下所示:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-31
      相关资源
      最近更新 更多