Страницы: 1
RSS
Вывести список уникальных значений подчинённых значению из другого столбца ВБА
 
Добрый день!  
Суть такова: имеется два столбца с данными, надо при помощи пользовательской функции (если это не возможно, то хотя бы просто макросом) извлечь из второго столбца уникальные данные соответствующие значению выбранному из первого столбца. Надеюсь из файла будет более понятно, что имеется в виду. Кстати в файле есть макросы и функции предоставленные форумчанином Alex_ST вот в этой теме http://www.planetaexcel.ru/forum.php?thread_id=21956&page_forum=1&allnum_forum=44 , но у меня знаний не хватит, чтобы довести их до ума под мои нужды.  
Спасибо.  
 
<EM><STRONG>Файл удален</STRONG> - велик размер - [<STRONG>МОДЕРАТОРЫ</STRONG>]</EM>
 
Виноват. Файл перезаливаю.
 
Спасибо, я код увидел и как раз разбирался с ним. Но возможно я как-то не так его применяю, ибо в результате получаю просто список уникальных значений из столбца, но не выполняется условие по соответствию.  
 
Код здесь выложу, для удобства.  
 
Sub Get_Unique()  
Dim rValRng As Object  
Set rValRng = Intersect(Selection, Selection.Parent.UsedRange)  
With Application  
.EnableEvents = False  
.ScreenUpdating = False  
rValRng.Offset(, 1).ClearContents  
rValRng.Offset(, 1).Value = DictionaryUniq(rValRng)  
.EnableEvents = True  
.ScreenUpdating = True  
End With  
End Sub  
 
Function DictionaryUniq(rRng As Object)  
Dim x, Arr, y, i As Long, Rng As Range, t As Single  
Arr = Rng.Value  
If IsArray(Arr) Then  
With CreateObject("Scripting.Dictionary")  
.CompareMode = vbTextCompare  
ReDim y(1 To UBound(Arr), 1 To 1)  
For Each x In Arr  
If Len(x) > 0 Then  
If Not .Exists(x) Then  
.Add x, 0  
y(.Count, 1) = x  
End If  
End If  
Next  
End With  
End If  
DictionaryUniq = y  
End Function  
 
Выделяете нужный столбец и запускаете макрос Get_Unique. Все. Уникальные значения будут вставлены правее выделенного столбца
 
Да, Дмитрий, это ваш ответ на вопрос eugene.v  
Там простая унификация, над которой все по-всякому извращались.  
А здесь Сеня, выступавший там как аноним, просит более сложный вариант - около каждого из значений унифицируемого столбца стоит в соседней ячейке какое-то другое значение. И нужно вывести в строку уникальные значения из унифицируемого столбца, а под каждым из них - столбиком значения из второго столбца.  
Тут, наверное, нужно будет делать словарь одномерных массивов.  
Ключами будут уникальные значения, а записями одномерные массивы с "попавшими" значениями из второго столбца.
С уважением, Алексей (ИМХО: Excel-2003 - THE BEST!!!)
 
{quote}{login=The_Prist}{date=02.12.2010 04:22}{thema=}{post}Вот Вам функция. Естественно, необходимо вводить как формулу массива, т.к. возвращает она несколько значений.  
Выделяем диапазон для будущих уникальных-вводим функцию и параметры-Завершаем ввод Ctrl+Shift+Enter{/post}{/quote} Вот здорово! Спасибо, пока все работает.
Страницы: 1
Читают тему
Наверх