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 个,则将重复第二个)。处理任意数量的值可能会更加复杂。
当然,在 VBA 中使用 Split 函数会更简单,它会考虑任意数量的键,从而产生连接的值。您可以在宏中使用它:
Sheet2.Range("B1").value = Join(Application.index(Sheet1.Columns("B"), _
Application.match(Split(Sheet2.Range("A1")), Sheet1.Columns("A"), 0)), " ")
当然,您可以将其调整为B 列中的任何单元格,使用Range("B" & i) 和Range("A" & i)...