Доброго времени суток! Обычно выборку нескольких значений из диапазона я не ленилась прописывать вручную, т.к. данных было не так и много, а изменения вносились редко. Но увы, все заканчивается .
Суть проблемы такова: в столбце прописаны инвентарные номера (их присваивают рандомно другие службы, я лишь могу для удобства пользования добавить к ним букву, которая обозначает принадлежность к той или иной группе пользователей) из них необходимо формировать перечни для каждой группы пользователей. Если просто в дополнительном столбце добавить принадлежность и отфильтровать, то перечни получаются очень длинные. А выбирать вручную в строчку, когда количество инв.№ переваливает за 10 шт. становится сложно и возникает возможность ошибки.
Может быть есть способ автоматизировать этот процесс?
Доброго времени суток! Обычно выборку нескольких значений из диапазона я не ленилась прописывать вручную, т.к. данных было не так и много, а изменения вносились редко. Но увы, все заканчивается .
Суть проблемы такова: в столбце прописаны инвентарные номера (их присваивают рандомно другие службы, я лишь могу для удобства пользования добавить к ним букву, которая обозначает принадлежность к той или иной группе пользователей) из них необходимо формировать перечни для каждой группы пользователей. Если просто в дополнительном столбце добавить принадлежность и отфильтровать, то перечни получаются очень длинные. А выбирать вручную в строчку, когда количество инв.№ переваливает за 10 шт. становится сложно и возникает возможность ошибки.
Может быть есть способ автоматизировать этот процесс?Irysha
Function VLOOKUPCOUPLE2(Table As Variant, SearchColumnNum As Integer, SearchValue As Variant, _ RezultColumnNum As Integer, Separator_ As String) 'Table - таблица, где ищем 'SearchColumnNum - столбец, где ищем 'SearchValue - данные, которые ищем 'RezultColumnNum - колонка, откуда берём результат 'Separator_ - разделитель, желательно вводить с пробелом в конце
Dim i As Long
If TypeName(Table) = "Range" Then Table = Table.Value For i = 1 To UBound(Table) If Table(i, SearchColumnNum) Like SearchValue Then If VLOOKUPCOUPLE2 <> "" Then VLOOKUPCOUPLE2 = VLOOKUPCOUPLE2 & Separator_ & Table(i, RezultColumnNum) Else VLOOKUPCOUPLE2 = Table(i, RezultColumnNum) End If End If Next i If VLOOKUPCOUPLE2 = 0 Then VLOOKUPCOUPLE2 = "" End Function
[/vba]
UDF [vba]
Code
=VLOOKUPCOUPLE2(C12:C20,1,"*м",1,", ")
[/vba] [vba]
Code
Function VLOOKUPCOUPLE2(Table As Variant, SearchColumnNum As Integer, SearchValue As Variant, _ RezultColumnNum As Integer, Separator_ As String) 'Table - таблица, где ищем 'SearchColumnNum - столбец, где ищем 'SearchValue - данные, которые ищем 'RezultColumnNum - колонка, откуда берём результат 'Separator_ - разделитель, желательно вводить с пробелом в конце
Dim i As Long
If TypeName(Table) = "Range" Then Table = Table.Value For i = 1 To UBound(Table) If Table(i, SearchColumnNum) Like SearchValue Then If VLOOKUPCOUPLE2 <> "" Then VLOOKUPCOUPLE2 = VLOOKUPCOUPLE2 & Separator_ & Table(i, RezultColumnNum) Else VLOOKUPCOUPLE2 = Table(i, RezultColumnNum) End If End If Next i If VLOOKUPCOUPLE2 = 0 Then VLOOKUPCOUPLE2 = "" End Function