在多列中进行excel查找

时间:2013-03-20 17:27:26

标签: excel

我希望有人可以帮助我认为这是一项简单的任务。

我有一个包含大量列的工作表(Sheet1)。前两个分别只是一个数字和一个名字。在这两列之后,有许多列对于每一行是不同的(例如,第一行有10列,第二行有4列等)。

我有另一个包含2列的工作表(Sheet2)。第一列有一个我想在Sheet1中查找的值。问题是,在前两列之后,值可以在Sheet2上的列中的任何位置。(例如,查找值123,值在第13行第6行或查找值456在第5列第14行)然后我想要值Sheet1上的第1列第6行将放入Sheet2上的第2列。

我尝试过使用Vlookup,Hlookup和Lookup,但似乎无法弄清楚如何让它工作。

非常感谢任何帮助

由于     加雷

1 个答案:

答案 0 :(得分:2)

......我知道你没有要求VBA解决方案,但我只想写一个看看我会怎么做......

我没有任何错误检查等“快速而肮脏”,但它会给你你想要的东西:

  Public Function FindInRange(Val As Variant, LookIn As Range, ColIndexNumber As Integer) As Range

  ' INPUTS:
     ' Val             = The Value you're looking for in your Range of cells
     ' Range           = The range of cells you're searching through
     ' ColIndexNumber  = The index of the column you want a value returned from within the row from which the value is found

  ' NOTE:
  ' This will only pull the first value matching your "Val" argument

  Dim FoundCell As Range

  Set FoundCell = LookIn.Find(what:=Val, LookAt:=xlWhole)

  If FoundCell Is Nothing Then
     Set FindInRange = Nothing
  Else
     Set FindInRange = Intersect(LookIn.Columns(ColIndexNumber), FoundCell.EntireRow)
  End If

  End Function

如果将其粘贴到VBA模块中,您可以像当时的任何其他功能一样从电子表格中调用它。

希望这会有所帮助:)