Excel2011: Vlookup и Combine

У меня возникли трудности с объединением нескольких функций, чтобы делать то, что я хочу, в файле Excel excel 70000+. ЛЮБЫЕ советы или указатели или рекомендации, которые очень ценятся.

У меня есть 2 колонки (около 70000 строк). В столбце 1 у меня есть номера счетов для клиентов (есть дубликаты), рядом с ним в столбце 2 у меня есть данные, которые я хочу извлечь. У меня также есть третий столбец (столбец 3), который представляет собой список номеров учетных записей, но был лишен дубликатов. Я пытаюсь, чтобы Vlookup просмотрел строку один из третьего столбца (lookup_value), затем выполнил поиск этого значения в столбцах 1 внутри (table_array) и возвратил значение из столбца 2, которое смежно с значением столбца 1.

Проблема. Я хочу, чтобы Vlookup выполнил эту функцию для всех 70000 строк, чтобы она возвращала все данные, соответствующие этому номеру учетной записи, предоставленному ему (lookup_value). THEN, я хочу использовать функцию Combine, чтобы поместить строку данных в одну ячейку, используя эту функцию Combine:

Function Combine(WorkRng As Range, Optional Sign As String = ", ") As String 'Update 20130815 Dim Rng As Range Dim OutStr As String For Each Rng In WorkRng If Rng.Text <> ", " Then OutStr = OutStr & Rng.Text & Sign End If Next Combine = Left(OutStr, Len(OutStr) - 1) End Function 

В конечном счете, рядом с столбцом 3, я хотел бы, чтобы данные были разделены запятыми в одной ячейке, рядом с каждым номером учетной записи. Ниже приведен пример того, что я пытаюсь сделать. У меня есть первые 3 столбца, но я хочу преобразовать их в 4-й столбец.

 Acct # Data Accounts Desired Data formating 1001 80100 1001 80100, 80250, 80255 1001 80250 1005 81000, 81222, 81235, 85213 1001 80255 1099 82250, 82323, 80100, 80150 1005 81000 1005 81222 1005 81235 1005 85213 1099 82250 1099 82323 1099 80100 1099 80105 

Я думал, что это будет простая функция или формула, но, возможно, я не использую правильные варианты.

Функция textjoin может принимать условия при вводе в виде формулы массива с CSE.

 =TEXTJOIN(", ", TRUE, IF(A2:INDEX(A:A,MATCH(1E+99,A:A))=C2, B2:INDEX(B:B,MATCH(1E+99,A:A)), TEXT(,))) 

введите описание изображения здесь

Если у вас нет новой функции textjoin в вашей версии Excel, выполните поиск тега textjoin этого сайта для VBA UDF и формулы рабочей таблицы. Я создал пару, используя static dict as scripting.dictionary .

Вот некоторый стандартный код общедоступного модуля, который будет собирать их все с использованием 2-D массива и скриптового словаря.

Эта процедура требует, чтобы вы добавляли Runtime Microsoft Scripting в проект VBA с помощью инструментов, ссылок.

 Option Explicit Sub qwewrety() Dim delim As String, arr As Variant Dim d As Long, dict As New Scripting.dictionary delim = Chr(44) & Chr(32) With Worksheets("sheet3") arr = .Range(.Cells(2, "A"), .Cells(.Rows.Count, "B").End(xlUp)).Value2 For d = LBound(arr, 1) To UBound(arr, 1) If dict.exists(arr(d, 1)) Then dict.Item(arr(d, 1)) = dict.Item(arr(d, 1)) & delim & arr(d, 2) Else dict.Item(arr(d, 1)) = arr(d, 2) End If Next d .Cells(2, "C").Resize(dict.Count) = Application.Transpose(dict.keys) .Cells(2, "D").Resize(dict.Count) = Application.Transpose(dict.items) End With End Sub 
Interesting Posts

Код Excel VBA для работы на Mac, Создать функцию PDF

Ссылка SlicerCache по имени, а не номеру

Как использовать критерии И в SUMIF excel

Объединить содержимое двух ячеек Excel с сохранением формата символа (с использованием VBA)

VB: выберите каждую 6-ю ячейку в столбце и вставьте вправо

Tricky PivotTable vlookup в Excel

iISSUE SOLVED] – СПАСИБО Новый выпуск, определяющий поля / записиWAS Почему я не могу использовать DAO в программе VBA, написанной в Excel 2013

Как извлечь данные из html с помощью xpath

excel vba получает строку, значение ячейки из selection.address

Запуск макроса, когда значение ячейки изменяется из-за формулы, а не пользователем

Используйте функцию ADDRESS для определения диапазона в MIN

Средние столбцы на основе ключевого столбца

Как сохранить запись изменения ячейки в vba

Excel консолидирует те же значения в столбце1, сохраняя данные

Как вставить изображение в Excel в указанной ячейке с помощью VBA

Давайте будем гением компьютера.