Страницы: 1
RSS
Убрать дубли, сделать свод по несуммируемым признакам
 
Есть два столбца, в одном - список организаций, в другом - события, имевшие место в отношении этих организаций. Список событий заранее известен, список организаций - нет, выгружается из внешнего источника.

В отношении одной организации может быть несколько разных событий, повтор события в отношении одной организации невозможен. Соответственно, в первом столбце могут быть дубли названий организаций, но для каждой организации одно и то же событие не может произойти дважды.

необходимо:
для каждой организации составить перечень событий через разделитель (например, через ";"). Перечень событий упорядочить по возрастанию.
 
с комплексными задачами — в ветку "Работа". Или разбивайте на подзадачи — каждая в своей теме
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Цитата
SmV написал:
необходимо:
какая-то странная постановка вопроса. Вот кому необходимо - тот пусть хоть что-то и сделает :) Поймите, здесь никому нет необходимости решать Ваши проблемы. Ваших подчиненных и слуг здесь нет, поэтому небольшая крупица вежливости не помешает. Это так, лирическое отступление на будущее.

Наводка: Как сцепить несколько значений в одну ячейку по критерию? СцепитьЕсли
Останется сделать сортировку.

Так же на форуме не раз промелькали подобные темы. Что-то вроде MergeIf или как-то там можно в поиске набить.
Изменено: The_Prist - 19.10.2017 17:26:35
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
 Спасибо за предложенные пути решения моей задачи.
Наверное, надо было написать

"пожалуйста, помогите решить мою проблему".
Пусть будет так, если это в большей степени соответствует правилам общения этого форума.
Я часто нахожу на нем ответы на свои вопросы.
Сегодня не нашёл, поэтому и зарегистрировался.  
 
Посмотрите как вариант решение от KL (было на старом форуме).  
 
SmV, макросом можно так:
Код
Sub a()
    Dim srcRn As Range, trgRn As Range, orgDic As Object
    Set srcRn = [B2:C10]
    Set orgDic = CreateObject("Scripting.Dictionary")
    For Each el In srcRn.Rows
        If Not orgDic.Exists(el.Cells(1).Value) Then
            orgDic(el.Cells(1).Value) = el.Cells(2)
        Else
            orgDic(el.Cells(1).Value) = orgDic(el.Cells(1).Value) & ";" & el.Cells(2)
        End If
    Next el
    Set trgRn = [H2].Resize(orgDic.Count, 2)
    For i = 0 To orgDic.Count - 1
        trgRn(i + 1, 1) = orgDic.Keys()(i)
        trgRn(i + 1, 2) = orgDic.Items()(i)
    Next i
    Range(trgRn.Cells(2, 1), trgRn.Cells(trgRn.Rows.Count, 2)).Sort Key1:=trgRn.Columns(1), Order1:=xlAscending, Header:=xlNo
End Sub
In GoTo we trust
 
Большое спасибо за быстрые и содержательные ответы.
Страницы: 1
Наверх