Добрый день! Суть такова: имеется два столбца с данными, надо при помощи пользовательской функции (если это не возможно, то хотя бы просто макросом) извлечь из второго столбца уникальные данные соответствующие значению выбранному из первого столбца. Надеюсь из файла будет более понятно, что имеется в виду. Кстати в файле есть макросы и функции предоставленные форумчанином 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} Вот здорово! Спасибо, пока все работает.