在 excel 中的两个选项卡中使用 VLookup 或 Index/Match
Using VLookup or Index/Match from two tabs in excel
我想使用 VLOOKUP 执行以下操作:
- 如果在 B 列(MMA 产品列表 sheet 选项卡)...
- 将 A 列(MMA 产品列表 sheet 选项卡的值粘贴到 D 列(MMA 上传器 sheet 选项卡)
这是一个视觉示例:
- MMA 上传器选项卡:
- MMA 产品列表选项卡:
- 放置适当的 ID(在 MMA 上传器选项卡中),因为 VLOOKUP 找到了匹配的名称:
这是我目前的 VLOOKUP 函数(在 MMA 上传器选项卡的单元格 D2 中测试它):
=IFERROR(VLOOKUP("*"&E2&"*",'MMA Product List'!$A:$B,1,FALSE), "N/A")
这是我目前使用的 INDEX MATCH 函数(在 MMA 上传器选项卡的单元格 D2 中测试它):
=IFERROR(INDEX('MMA Product List'!$A:$A,MATCH("*"&E3&"*", 'MMA Product List'!$B:$B,0)), "N/A")
我上面写的函数都没有产生值,它们都return#N/A.
一如既往,感谢您的帮助!
如果您使用 VBA,您可以使用 Range.Find
并直接使用 sheet 对象,而不是通过公式来检索值。
这里是一个简单循环遍历 E 列的示例,使用 Range.Find
查看另一个 sheet 的 B 列并复制值:
Dim wsUp As Worksheet
Set wsUp = Sheets("MMA Uploader")
Dim wsPL As Worksheet
Set wsPL = Sheets("MMA Product List")
'Finding the last non-blank cell in Uploader Column E
Dim LastRow As Long
LastRow = wsUp.Cells(wsUp.Rows.Count, 5).End(xlUp).Row
'Loop though Uploader Column E from row 2 till the last non-blank cell
Dim i As Long
For i = 2 To LastRow
Dim rFind As Range
'Looking in Product List column B for each value of Uploader column E
Set rFind = wsPL.Columns(2).Find(what:=wsUp.Cells(i, 5), LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=True)
'If a value is found, then copy from column A into Uploader column D
If Not rFind Is Nothing Then
wsUp.Cells(i, 4).Value = rFind.Offset(0, -1).Value
End If
Next i
我想使用 VLOOKUP 执行以下操作:
- 如果在 B 列(MMA 产品列表 sheet 选项卡)...
- 将 A 列(MMA 产品列表 sheet 选项卡的值粘贴到 D 列(MMA 上传器 sheet 选项卡)
这是一个视觉示例:
- MMA 上传器选项卡:
- MMA 产品列表选项卡:
- 放置适当的 ID(在 MMA 上传器选项卡中),因为 VLOOKUP 找到了匹配的名称:
这是我目前的 VLOOKUP 函数(在 MMA 上传器选项卡的单元格 D2 中测试它):
=IFERROR(VLOOKUP("*"&E2&"*",'MMA Product List'!$A:$B,1,FALSE), "N/A")
这是我目前使用的 INDEX MATCH 函数(在 MMA 上传器选项卡的单元格 D2 中测试它):
=IFERROR(INDEX('MMA Product List'!$A:$A,MATCH("*"&E3&"*", 'MMA Product List'!$B:$B,0)), "N/A")
我上面写的函数都没有产生值,它们都return#N/A.
一如既往,感谢您的帮助!
如果您使用 VBA,您可以使用 Range.Find
并直接使用 sheet 对象,而不是通过公式来检索值。
这里是一个简单循环遍历 E 列的示例,使用 Range.Find
查看另一个 sheet 的 B 列并复制值:
Dim wsUp As Worksheet
Set wsUp = Sheets("MMA Uploader")
Dim wsPL As Worksheet
Set wsPL = Sheets("MMA Product List")
'Finding the last non-blank cell in Uploader Column E
Dim LastRow As Long
LastRow = wsUp.Cells(wsUp.Rows.Count, 5).End(xlUp).Row
'Loop though Uploader Column E from row 2 till the last non-blank cell
Dim i As Long
For i = 2 To LastRow
Dim rFind As Range
'Looking in Product List column B for each value of Uploader column E
Set rFind = wsPL.Columns(2).Find(what:=wsUp.Cells(i, 5), LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=True)
'If a value is found, then copy from column A into Uploader column D
If Not rFind Is Nothing Then
wsUp.Cells(i, 4).Value = rFind.Offset(0, -1).Value
End If
Next i