Excel - substitua várias strings em uma única célula, com base em uma tabela de consulta

1

Eu gostaria de fazer uma substituição em várias strings dentro de uma célula, com base em uma tabela de pesquisa.

Minha tabela de pesquisa tem duas colunas:

AUSTRIA | AT
BRAZIL  | BR
COLOMBIA| CO

Minha tabela de dados tem duas colunas:

Apples | AUSTRIA,COLOMBIA
Banana | BRAZIL,AUSTRIA

Eu quero que os valores na tabela de dados sejam substituídos pelos valores na tabela de consulta (que, sendo cada código de país ISO, é bastante longa).

Saída desejada:

Apples | AT,CO
Banana | BR,AT

Alguma ideia? Evitar o VBA é preferível!

    
por Chris 24.06.2011 / 12:13

1 resposta

2

Caso você decida ir até lá (vai ser rápido, como tirar um band-aid), aqui está uma solução VBA. Basta fazer as alterações necessárias anotadas nos comentários para fazer esse trabalho para sua pasta de trabalho.

Sub abbrev()

Dim abvtab() As Variant
Dim ltsheet As Worksheet
Dim datasheet As Worksheet
Dim lt As Range

'Change Lookup to the sheet name with your lookup table.
Set ltsheet = Sheets("Lookup")

'Change Data to the sheet name with your data.
Set datasheet = Sheets("Data")

'Change A2 to the top left cell (not the header) in your lookup table.
'Change B2 to top right cell.
Set lt = ltsheet.Range("A2", ltsheet.Range("B2").End(xlDown))

abvtab = lt

For i = 1 To UBound(abvtab)
    datasheet.Cells.Replace What:=abvtab(i, 1), Replacement:=abvtab(i, 2), LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=True, SearchFormat:=False, _
        ReplaceFormat:=False
Next i

End Sub
    
por 24.06.2011 / 14:46