我希望有人可以帮助我认为这是一项简单的任务。
我有一个包含大量列的工作表(Sheet1)。前两个分别只是一个数字和一个名字。在这两列之后,有许多列对于每一行是不同的(例如,第一行有10列,第二行有4列等)。
我有另一个包含2列的工作表(Sheet2)。第一列有一个我想在Sheet1中查找的值。问题是,在前两列之后,值可以在Sheet2上的列中的任何位置。(例如,查找值123,值在第13行第6行或查找值456在第5列第14行)然后我想要值Sheet1上的第1列第6行将放入Sheet2上的第2列。
我尝试过使用Vlookup,Hlookup和Lookup,但似乎无法弄清楚如何让它工作。
非常感谢任何帮助
由于 加雷
答案 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模块中,您可以像当时的任何其他功能一样从电子表格中调用它。
希望这会有所帮助:)