1

Я хотел бы сделать замену нескольких строк в ячейке на основе таблицы поиска.

Моя таблица поиска имеет два столбца:

AUSTRIA | AT
BRAZIL  | BR
COLOMBIA| CO

Моя таблица данных имеет два столбца:

Apples | AUSTRIA,COLOMBIA
Banana | BRAZIL,AUSTRIA

Я хочу, чтобы значения в таблице данных были заменены значениями в справочной таблице (которая, будучи кодом каждой страны ISO, довольно длинная).

Желаемый результат:

Apples | AT,CO
Banana | BR,AT

Есть идеи? Избегать VBA предпочтительнее!

1 ответ1

2

Если вы решите пойти туда (это будет быстро, как снятие бинта), вот решение VBA. Просто внесите необходимые изменения, отмеченные в комментариях, чтобы сделать эту работу для вашей рабочей книги.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .