Подскажите, пожалуйста, есть ли техническое решение через функции или макросы экселя для такого результата, как в файле? Постараюсь объяснить, суть: Первый столбец имеет 2 группы словосочетаний, их может быть больше. Второй столбец "тасует" все слова в каждой группе и создает строчку этих слов с подписью "-!" напротив.
Важный момент: Ячейка B1 содержит в себе все слова из группы, кроме тех слов, которые непосредственно есть в А1 . Ячейка B7 содержит в себе все слова из группы, кроме тех слов, которые непосредственно есть в А7 .
Второй важный момент: Весь процесс происходит в рамках каждой группы и друг с другом не пересекается.
Возможно ли так сделать? Я надеюсь, что смог доступно объяснить суть) Если будут вопросы, или что-то некорректно описал, поправьте, пожалуйста.
Comrad2230, разделитель - всегда пробел? Да, конечно. Задача легко решается макросом (точнее, пользовательской функцией) на регулярных выражениях. Функциями будет слишком заморочно, если вообще осуществимо.
Разделитель между словами в столбце "B"? Да, желательно чтобы был пробел.
Если Вы имеете в виду разделитель групп. То это может быть цвет, пустая строчка, что угодно. Тут непринципиально, главное чтобы макрос понимал, где заканчивается одна группа и начинается другая.
Как это можно сделать? Я человек , который вообще не имеет представления, как правильно их составлять)
Здравствуйте, Андрей. А Вы не можете расписать сам процесс в Power Query, хотя бы в паре тройке слов. Никак не доходит, как Вы получили конечный результат, используя Power Query. Спасибо.
bergdorf написал: А Вы не можете расписать сам процесс в Power Query, хотя бы в паре тройке слов.
Пожалуйста 1. Грузим данные из таблицы "База" 2. Группируем по полю группа в новый столбец "temp" 3. Внутри группировки формируем список слов для каждой фразы с удалением + 4. Формируем список уникальных слов группы. 5. И уникального списка исключаем слова текущей фразы группы. 6. К оставшимся словам добавляем ведущие "-!" и собираем фразу words 7. Оставляем результатом группировки только столбец temp 8. Разворачиваем содержащиеся в temp таблицы результатов
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