Excel 当单元格具有逗号分隔的值时,如何使用VLOOKUP或XLOOKUP

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

我试图找到单元格中每个值的ID。我尝试使用VLOOKUP,但当一个单元格有多个值时,它失败了

在这种情况下,B2将更新为4,1

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,它将按输入进行订购

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