-2

Excel Sheet1, столбец

1) 3, 2, 4
2) 1

Номера относятся к номерам строк в Sheet2, ColumnB, который содержит идентификаторы

1) foo
2) bar
3) eggs
4) sausage

То, что я должен закончить, это столбец на листе 1, который содержит

1) eggs, bar, sausage
2) foo

Я почти уверен, что могу сделать это с помощью скрипта Python, однако предпочтительнее делать это в Excel. К сожалению, я почти ничего не знаю о VBA.

Текст в столбцы не подходит: вы не можете ориентироваться на новый лист, но ячейка в Sheet1ColumnA может содержать любое количество элементов.

Изменить: VLOOKUP не будет работать здесь, так как он просматривает содержимое ячейки. Здесь я хочу поиск по ссылке на ячейку. INDEX сделал бы, если бы я мог заставить его перебирать много значений через запятую в одной ячейке. Мне нужно сначала проанализировать значения в ячейке, а затем использовать какой-то INDEX, чтобы найти соответствующее значение поиска для каждого.

1 ответ1

2

Этот код VBA сделает свое дело:

Public Function mysearch(value As String)
    Dim myrows() As String
    myrows = Split(value, ",")
    result = ""
    For i = LBound(myrows) To UBound(myrows)
        a = ThisWorkbook.Worksheets(2).Cells(myrows(i), 2) 'The first 2 is the number of sheet and the last 2 is the column.
        result = result & a & ","
    Next i
    result = Left(result, Len(result) - 1)
    mysearch = result
End Function

Перейти к макросу / VBA с помощью ALT+F11. Под ThisWorkbook вставьте модуль и вставьте код с правой стороны.

Если ваши справочные данные находятся в столбце A листа 1 , то в ячейку B1 поместите =mysearch(A1) и если данные находятся в столбце B листа 2, вы получите результат.

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