首页 文章

如果查找值在单个单元格中包含多个值,则如何使用vlookup

提问于
浏览
1

假设Sheet1具有下表(数据范围单元格A1到B4)

Fruits  | Colors
======= | =======
 Apple  | Red
 Mango  | Green
 Banana | Yellow

假设在sheet2中,Cell A1具有基于空格分隔的以下值(Apple Mango Banana) .

如何在单元格B2中使用VLookup基于A1值,可以按相同顺序给出结果(红绿黄)

1 回答

  • 0

    Sheet2!B2 中的这个公式可以做到:

    =INDEX(sheet1!B:B,MATCH(TRIM(LEFT(SUBSTITUTE(A1, " ", REPT(" ", 100)),25)),sheet1!A:A,0)) & " " &
    INDEX(sheet1!B:B,MATCH(TRIM(MID(SUBSTITUTE(A1," ",REPT(" ",100)),100,25)),sheet1!A:A,0)) & " " &
    INDEX(sheet1!B:B,MATCH(TRIM(RIGHT(SUBSTITUTE(A1, " ", REPT(" ", 100)),25)),sheet1!A:A,0))
    

    如果要匹配3个值,则此公式可以正常工作(如果只有2个值,则第二个将重复) . 处理任意数量的值可能更复杂 .

    当然,在使用 Split 函数的VBA中它可以更简单,并且它将考虑任意数量的键,产生连接值 . 您可以在宏中使用它:

    Sheet2.Range("B1").value = Join(Application.index(Sheet1.Columns("B"), _
        Application.match(Split(Sheet2.Range("A1")), Sheet1.Columns("A"), 0)), " ")
    

    当然,您可以使用 Range("B" & i)Range("A" & i) 将其调整为 B 列中的任何单元格...

相关问题