Atualização: Adicionar Vba
Se a suposição de chave 1 abaixo não for do seu agrado, você pode experimentar este snippet de código.
Function lookupStringCodes(lookupValue As Range, lookupRange As Range, lookupResult As Range)
Dim commaSepVals() As String
commaSepVals = Split(CStr(lookupValue.Value), ",")
Dim output As String
output = vbNullString
For i = LBound(commaSepVals) To UBound(commaSepVals)
commaSepVals(i) = Replace(commaSepVals(i), " ", "")
Next
Dim sep As String
sep = ", "
For j = LBound(commaSepVals) To UBound(commaSepVals)
output = output & _
Application.WorksheetFunction.Index(lookupResult, _
Application.WorksheetFunction.Match(CStr(commaSepVals(j)), lookupRange, 0))
If j < UBound(commaSepVals) Then
output = output & sep
End If
Next
lookupStringCodes = output
End Function
Que você pode ligar assim:
Respostaoriginal:Funçãodeplanilha
Principaispressupostos:
- Vocêsótem3inteiroscomonoseuexemplo,variandode1...n(seissonãoforverdadeevocêpodetermaisde3inteiros,émuitomaisfácilresolverissousandooVBA,amenosquevocêqueiradividirestetextoparacolunas)
- Vocêquerqueissosejafeitoemumafórmula,emvezdeusartextoemcolunas
Tenteoseguinte:
=VLOOKUP(LEFT(A2,(FIND(",",A2,1)-1)), G$2:H$11, 2, FALSE) & ", " & VLOOKUP(LEFT(TRIM(MID(SUBSTITUTE(A2," ",REPT(" ", 100)),100,100)), LEN(TRIM(MID(SUBSTITUTE(A2," ",REPT(" ", 100)),100,100)))-1), G$2:H$11, 2, FALSE) & ", "& VLOOKUP(TRIM(RIGHT(SUBSTITUTE(A2," ",REPT(" ",LEN(A2))),LEN(A2))), G$2:H$11, 2, FALSE)
Formatado para facilitar a leitura:
=VLOOKUP(LEFT(A2,(FIND(",",A2,1)-1)), G$2:H$11, 2, FALSE) & ", " &
VLOOKUP(LEFT(TRIM(MID(SUBSTITUTE(A2," ",REPT(" ", 100)),100,100)),
LEN(TRIM(MID(SUBSTITUTE(A2," ",REPT(" ", 100)),100,100)))-1), G$2:H$11, 2, FALSE) & ", "&
VLOOKUP(TRIM(RIGHT(SUBSTITUTE(A2," ",REPT(" ",LEN(A2))),LEN(A2))), G$2:H$11, 2, FALSE)
Basicamente: pegue o texto à esquerda da primeira vírgula, procure em sua tabela de pesquisa. Em seguida, pegue o texto entre o primeiro espaço e a segunda vírgula, procure em sua tabela de consulta. Finalmente, pegue o texto à direita do último espaço, procure em sua tabela de pesquisa.
Substitua G2: H11 pela sua tabela de consulta. Substitua A2 pelo seu valor inicial.