Страницы: 1
RSS
Сортировка и группировка слов. (Макрос)
 
Здравствуйте, уважаемые форумчане)

Подскажите, пожалуйста, есть ли техническое решение через функции или макросы экселя для такого результата, как в файле?
Постараюсь объяснить, суть:
Первый столбец имеет 2 группы словосочетаний, их может быть больше.
Второй столбец "тасует" все слова в каждой группе и создает строчку этих слов с подписью  "-!" напротив.

Важный момент:
Ячейка B1 содержит в себе все слова из группы, кроме тех слов, которые непосредственно есть в А1 .
Ячейка B7 содержит в себе все слова из группы, кроме тех слов, которые непосредственно есть в А7 .

Второй важный момент:
Весь процесс происходит в рамках каждой группы и друг с другом не пересекается.

Возможно ли так сделать?
Я надеюсь, что смог доступно объяснить суть) Если будут вопросы, или что-то некорректно описал, поправьте, пожалуйста.
Изменено: Comrad2230 - 16.03.2018 22:40:26
 
Comrad2230, разделитель - всегда пробел? Да, конечно. Задача легко решается макросом (точнее, пользовательской функцией) на регулярных выражениях.
Функциями будет слишком заморочно, если вообще осуществимо.
Изменено: Irregular Expression - 16.03.2018 18:22:59
 
Разделитель между словами в столбце "B"? Да, желательно чтобы был пробел.

Если Вы имеете в виду разделитель групп. То это может быть цвет, пустая строчка, что угодно. Тут непринципиально, главное чтобы макрос понимал, где заканчивается одна группа и начинается другая.

Как это можно сделать? Я человек , который вообще не имеет представления, как правильно их составлять)
Изменено: Comrad2230 - 16.03.2018 19:07:33
 
Доброе время суток.
А примеры результата этой самой "тасовки" увидеть можно?
 
Здравствуйте, Андрей!
Да, конечно. Я прикрепил файл с примером и конечным результатом.
 
Дошло. Вопрос причём тут слово сортировка, которое присутствует в названии темы? Версия на Power Query.
Успехов.
 
Здравствуйте, Андрей.
А Вы не можете расписать сам процесс в Power Query, хотя бы в паре тройке слов.
Никак не доходит, как Вы получили конечный результат, используя Power Query.
Спасибо.  
 
Цитата
bergdorf написал:
А Вы не можете расписать сам процесс в Power Query, хотя бы в паре тройке слов.
Пожалуйста
1. Грузим данные из таблицы "База"
2. Группируем по полю группа в новый столбец "temp"
3. Внутри группировки формируем список слов для каждой фразы с удалением +
4. Формируем список уникальных слов группы.
5. И уникального списка исключаем слова текущей фразы группы.
6. К оставшимся словам добавляем ведущие "-!" и собираем фразу words
7. Оставляем результатом группировки только столбец temp
8. Разворачиваем содержащиеся в temp таблицы результатов
 
Кнопка цитирования не для ответа [МОДЕРАТОР]

Спасибо большое, сейчас попробуем)  
 
Андрей VG, большое спасибо! Пока все работает отлично)
 
Как вариант макрос
Код
Sub Co()
Dim v(), x, i&, r As Range, s$, d$
  For Each r In Range("A:A").SpecialCells(xlCellTypeConstants).Areas
    s = ""
    v = Evaluate("INDEX(TRIM(SUBSTITUTE(" & r.Address(, , Application.ReferenceStyle) & ",""+"","""")),)")
    For i = 1 To UBound(v)
      For Each x In Split(v(i, 1))
        If InStr(1, s, x, vbTextCompare) = 0 Then s = s & " " & x
    Next x, i
    s = s & " "
    For i = 1 To UBound(v)
      d = s
      For Each x In Split(v(i, 1))
        d = Replace(d, " " & x & " ", " ", , , vbTextCompare)
      Next
      v(i, 1) = "-!" & Replace(WorksheetFunction.Trim(d), " ", " -!")
    Next
    r.Offset(, 2) = v
  Next
End Sub
Страницы: 1
Наверх