Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
PQ замена слова и всего что после него на пустоту
 
Друзья, добрый день!
Как в PQ реализовать аналог "замены со звездочкой"?
Т.е. в Excel я делаю, например в строке "ККК 3465345345 договор за бла бла Иванов бла бла Петров" замену [" договор*"] на [""] и имею только номер договора. В PQ так не срабатывает.
До этого делал разбивку по столбцам по этому слову и удалял ненужный столбец, но когда таких слов для замены много, то так не очень удобно. Примерный список слов, которые буду так менять в файле примере, но он неполный, т.к. может пополняться. Привязаться к номеру договора и просто его вычленять из столбца, думаю, что не получится, т.к. его люди вводят от руки и какую-то универсальную маску задать не выйдет. Договор всегда первым идет в ячейке, в нем как могут быть пробелы, так может и не быть.

Спасибо.
Изменено: whateverlover - 20 фев 2021 11:32:44
 
По идее можно использовать Разделить столбец -По разделителю. Указываете в качестве разделителя - Пользовательский -"договор". В расширенных параметрах выбираете "по каждому вхождению" и число столбцов - 1.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Дмитрий(The_Prist) Щербаков, спасибо, так сейчас примерно и делаю. Думал может есть какая-то несложная формула, где аргументами я эти слова для замены указал и периодически в эту формулу их подкидывал, при появлении новых.
 
Если сварганить список разделителей, то можно например так:
Код
let
    Delimiters = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    Source = Excel.CurrentWorkbook(){[Name="Таблица2"]}[Content],
    Decart = Table.Join(Source, {}, Delimiters, {}),
    Added = Table.AddColumn(Decart, "Номер", each Text.BeforeDelimiter( [До], [Список разделителей] ), Text.Type),
    TextLength = Table.AddColumn(Added, "Длина", each Text.Length([Номер]), Int64.Type),
    GroupedRows = Table.Group(TextLength, {"До"}, {{"таб", each Table.FromRecords({Table.Min(_, "Длина")})}}),
    Out = Table.Combine( GroupedRows[таб], type table [До=text, Номер=text] )
in
    Out
Вот горшок пустой, он предмет простой...
 
PooHkrd, спасибо! Буду пробовать из дома, ибо с работы скачивание файлов не поощряется. :)
 
Можно не скачивать:
Делаете вот такую табличку с названием как на картинке в вашем файле-примере, потом создаете пустой запрос и вставляете туда мой код, и вуаля...
Вот горшок пустой, он предмет простой...
Страницы: 1
Читают тему (гостей: 1)
Наверх