Excel 当单元格具有逗号分隔的值时,如何使用VLOOKUP或XLOOKUP
我试图找到单元格中每个值的ID。我尝试使用VLOOKUP,但当一个单元格有多个值时,它失败了 在这种情况下,B2将更新为4,1 text使用IF连接:Excel 当单元格具有逗号分隔的值时,如何使用VLOOKUP或XLOOKUP,excel,excel-formula,xlookup,Excel,Excel Formula,Xlookup,我试图找到单元格中每个值的ID。我尝试使用VLOOKUP,但当一个单元格有多个值时,它失败了 在这种情况下,B2将更新为4,1 text使用IF连接: =TEXTJOIN(",",TRUE,IF(ISNUMBER(SEARCH(","&SUBSTITUTE('Item Details'!$A$2:$A$6," ","")&",",","&SUBSTITU
=TEXTJOIN(",",TRUE,IF(ISNUMBER(SEARCH(","&SUBSTITUTE('Item Details'!$A$2:$A$6," ","")&",",","&SUBSTITUTE(A2," ","")&",")),'Item Details'!$B$2:$B$6,""))
这将按查找表顺序对输出进行排序
另一个选项是使用XLOOKUP:
=TEXTJOIN(",",TRUE,XLOOKUP(FILTERXML("<a><b>"&SUBSTITUTE(A2,",","</b><b>")&"</b></a>","//b"),'Item Details'!A:A,'Item Details'!B:B,"",0))
使用Office 365,它将按输入进行订购
text使用IF连接:
=TEXTJOIN(",",TRUE,IF(ISNUMBER(SEARCH(","&SUBSTITUTE('Item Details'!$A$2:$A$6," ","")&",",","&SUBSTITUTE(A2," ","")&",")),'Item Details'!$B$2:$B$6,""))
这将按查找表顺序对输出进行排序
另一个选项是使用XLOOKUP:
=TEXTJOIN(",",TRUE,XLOOKUP(FILTERXML("<a><b>"&SUBSTITUTE(A2,",","</b><b>")&"</b></a>","//b"),'Item Details'!A:A,'Item Details'!B:B,"",0))
使用Office 365,它将按输入进行订购
尝试一下这个用户定义的小函数:
Public Function zlookup(v As Variant, rng As Range) As String
Dim a, arr, r As Range
arr = Split(v, ",")
For Each a In arr
Set r = rng.Columns(1).Find(What:=a)
zlookup = zlookup & "," & r.Offset(0, 1).Value
Next a
zlookup = Mid(zlookup, 2)
End Function
尝试一下这个用户定义的小函数:
Public Function zlookup(v As Variant, rng As Range) As String
Dim a, arr, r As Range
arr = Split(v, ",")
For Each a In arr
Set r = rng.Columns(1).Find(What:=a)
zlookup = zlookup & "," & r.Offset(0, 1).Value
Next a
zlookup = Mid(zlookup, 2)
End Function