{"id":14291,"url":"\/distributions\/14291\/click?bit=1&hash=257d5375fbb462be671b713a7a4184bd5d4f9c6ce46e0d204104db0e88eadadd","hash":"257d5375fbb462be671b713a7a4184bd5d4f9c6ce46e0d204104db0e88eadadd","title":"\u0420\u0435\u043a\u043b\u0430\u043c\u0430 \u043d\u0430 Ozon \u0434\u043b\u044f \u0442\u0435\u0445, \u043a\u0442\u043e \u043d\u0438\u0447\u0435\u0433\u043e \u0442\u0430\u043c \u043d\u0435 \u043f\u0440\u043e\u0434\u0430\u0451\u0442","buttonText":"","imageUuid":""}

Массовая замена текста с помощью Power Query

Можно ли за очень короткое время и без особых усилий привести разношерстный текст в единый стиль? С помощью функции List.Accumulate в Power Query справится с массовой заменой текста можно практически моментально!

Все мы сталкивались с отчетом где одно и то же слово может быть написано двумя, а то и более вариантами. Не всегда обычная замена («Найти и заменить» или Ctrl+H) может справиться с большим объемом и привести разношёрстный текст в единый стиль. В статье мы рассмотрим решение этой задачи с помощью функция List.Accumulate в Power Query, которая в считанные секунды выполнит преобразование текста и сделает работу с информацией намного комфортнее.

Применение функции рассмотрим на примере списка с адресами, где такие слова, как улица, город и тд. написаны разными вариантами:

А также справочник, где указаны все «неправильные» варианты и варианты, на которые необходимо будет произвести замену:

Для начала нам нужно загрузить информацию в Power Query. Первым загрузим справочник с вариантами: Выделить справочник – вкладка «Данные»- из таблицы/диапазона.

Для использования в дальнейшем List.Accumulate, которая будет производить замену текста, необходимо справочник преобразовать в список из записей, где есть два элемента «Найти» и «Заменить».

Преобразование можно выполнить с помощью функции в Power QueryTable.ToRecords(). Данную функцию необходимо дописать в строку формул:

=Table.ToRecords(Excel.CurrentWorkbook() {[Name =»Справочник»]}[Contet])

Далее возвращаемся в Excel – вкладка «Главная» — кнопка «Закрыть и загрузить в» — в окошке «Импорт данных» опция «только создать подключение».

Вторым этапом необходимо загрузить таблицу с адресами в Power Query и выполнять в ней замену по справочнику:

Выделить таблицу адресов – вкладка «Данные» — из таблицы/диапазона.

Теперь применим функцию List.Accumulate:

Вкладка «Добавление столбца» — Настраиваемый столбец – Настраиваемая формула столбца:

=List.Accumulate(Справочник, [Таблица 1], (state, current) =>Text.Replace(state, current[Найти], current [Заменить]))

Получаем чистый список адресов без траты времени на ручную замену текста:

Функции List.Accumulate в Power Query справляется с массовой заменой текста за несколько секунд без затрат времени и сил, которые ушли бы на ручную замену. Не стоит ограничиваться стандартными функциями Excel, когда есть множество полезных приемов, упрощающих работу.

0
Комментарии
-3 комментариев
Раскрывать всегда