Страницы: 1
RSS
Каким образом выполнить замену каждого n-го пробела в строке текста на разрыв строки (alt+enter, символ(10)) через формулу???
 
Помогите други и гении Excel)))))
Ситуация такая: Необходимо собрать сводную таблицу из большого количества файлов в одну. Собираю через Power Query.  Однако один из столбцов таблиц содержит текст - название работы, которое может иметь различное количество символов. Результирующую сводную таблицу собрать не проблема,однако форматирование и фиксирование ширины столбца с названием работ никак не выходит. Игра с флажками на вкладке Конструктор - кнопка Свойства результата не дала все равно ширина убегает. А убегает она на ширину столбца самого длинного названия работы.
Попробовав разбить название работы на несколько строк в ячейке через Alt+Enter удалось победить чрезмерное уползание ширины сводной таблицы после обработки Power Querry. Теперь задача в следующем: нужно во всех файлах и строках выполнить аналогичную операцию и соответствено на вновь образующихся файлах тоже.

Например:
Разработка технических условий на трубы из коррозионностойкиих высоколегированных марок стали для магистральных трубопроводов ПАО "Газпром".

Нужно чтоб вместо каждого третьего пробела был вставлен разрыв стоки:
Разработка технических условий
на трубы из
коррозионностойкиих высоколегированных марок
стали для магистральных
трубопроводов ПАО "Газпром"

Формула "ПОДСТАВИТЬ" не вариант, поскольку иногда встречаются названия из 20-25 слов с предлогами и видеть строку на пол экрана не хочется, а атрибут"номер вхождения" сработает только на третий пробел, при этом шестой, девятый и т.д. так и останутся, и строка останется неудобно широкой.

А теперь внимание вопрос:
Каким образом выполнить замену каждого n-го пробела в строке текста на разрыв строки (alt+enter, символ(10)) через формулу???

поскольку сервер корпоративный и я не с правами администратора, то решение нужно в виде формулы в ячейке.
VBA и макросы табу. поскольку работают с файлами разные люди и они не должны заморачиваться и писать все название работы в одну строку без манипуляций, а потом из вбитого названия уже формула делает конечный результат.

Либо подскажите может найдено какое то решение с Power query, чтоб не заниматься этой ерундой? ))))
:D
Спасибо большое за помощь))
 
Доброй ночи ,Антон Черняев, очень странно, что Вам не помогает свойство "задать ширину столбца". Попробовал у себя, всё прекрасно сохраняет. Какая у Вас версия Excel? Может PQ давно не обновляли? При снятии галки, ставили перенос строки?
 
Aleksey1107,  Офис 2016.
обновлять ПО нет прав доступа. Да и вроде не совсем уж старое по.
 
Антон Черняев, а попробуйте ради интереса обновить мой запрос, сохраниться ли в моём файле у вас ширина столбца?
 
Код
=ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A3;" ";СИМВОЛ(10);3);" ";СИМВОЛ(10);5);" ";СИМВОЛ(10);7);" ";СИМВОЛ(10);9)
 
Антон Черняев, на 2016 формулой более элегантно чем использовать вложенность не сделать, но лучше это делать с конца, тогда все просто.
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A3;" ";CHAR(10);4*3);" ";CHAR(10);3*3);" ";CHAR(10);2*3);" ";CHAR(10);1*3)
По вопросам из тем форума, личку не читаю.
 
Если
Цитата
Антон Черняев написал:
VBA и макросы табу.
по причине
Цитата
Антон Черняев написал:
поскольку работают с файлами разные люди и они не должны заморачиваться
то они и знать ничего не будут. И длина строки ничем не регламентируется, и замена происходит сразу при вводе (столбец А). Или, по желанию, через функцию.
Код
Function qqq$(s$)
    s = Replace(s, Chr(10), " ")
    With CreateObject("VBScript.RegExp")
        .Global = True
        .Pattern = "(\S+ \S+ \S+) "
        qqq = .Replace(s, "$1" & Chr(10))
    End With
End Function
Страницы: 1
Читают тему
Наверх