Power Query Продвинутый №28. Множественная текстовая замена c List.Generate [СПОНСОРЫ]
HTML-код
- Опубликовано: 17 окт 2024
- В этом уроке мы научимся выполнять множественную текстовую замену в Power Query с помощью функции List.Generate. Для спонсоров канала я так же расскажу как это делать в VBA.
Файлы для спонсоров Boosty: boosty.to/comr...
Файлы для спонсоров ВК: comrade...
Файлы для спонсоров RUclips: • Post
Индивидуальное обучение: comrade-xl.ru/...
Страница урока на сайте: comrade-xl.ru/...
Файлы для спонсоров Boosty: boosty.to/comrade-xl/posts/83b474b0-e4c5-473d-9263-8f20a80f50e3?share=post_link
Файлы для спонсоров ВК: vk.com/comrade.excel?w=wall-185123800_188
Файлы для спонсоров RUclips: ruclips.net/user/postUgy-_hvYUfYmdKUv0bt4AaABCQ
Индивидуальное обучение: comrade-xl.ru/pq-training/
Страница урока на сайте: comrade-xl.ru/2020/12/05/pq-multiple-txt-replacement-list-generate/
Класс! Этот способ даже более понятный, чем с List.Accumulate
Тимур, супер. спасибо. пожалуйста, не пропадайте надолго! грусть нападает при отсутствии новых уроков. я к Комраду присоединился,когда еще не было тыщи человек,праздравляю уже за 2 перевалило! надеюсь к новому году цифру за 4 увидеть!!!!
Спасибо! Не пропаду. Хорошо бы 4, но сейчас что-то прирост замедлился, поэтому хотя бы 3 с небольшим бы...
@@comrade_excel В развитии темы про Веб-анализ как можно получить данные о количестве прироста пользователей по дням/неделям/кварталам и спрогнозировать цифру до определенной даты. Было бы интересно посмотреть это в новом уроке (как предложение). Функцию прогноза на мой взгляд знают единицы!+много кто сейчас смотрит на лайки в своих блогах,так что массе лайколюбителей будет интересно;)
сделаем ставки,что будет более 4? Комрады, Кто еще поддержит? Ставка в 100р никого не утянет?
Спасибо!
List.Generate сложно зашел с точки зрения понимания). Нужно будет "под карандаш" разобрать пример. А в целом - отличный материал. Спасибо !
По List.Generate уже несколько видео. Посмотрите все. В первом я разбираю эту функцию подробно.
@@comrade_excel где первый урок по функции List.Generate?
Когда писал формулу сам, столкнулся с такими ошибками:
1. В Text.Replace первым аргументом сначала вписал [Компания]. Потом понял, что надо писать имя поля, заданного в initial - [txt]
2. Забывал про номер строки во втором и третьем аргументе функции Text.Replace - Замена_1[Найти] и Замена_1[Заменить]. Потом понял, что без номера строки формула работать не будет, а номер строки - переменная index.
3. Долго потом не мог понять, в чём ошибка: Замена_1[Найти]{index} и Замена_1[Заменить]{index}. Потом до меня дошло, что index - название поля в записи, значит его надо указывать в квадратных скобках {[index]}
3. В пользовательской функции имя переменной [ИсходныйТекст] писал в квадратных скобках. Потом понял, что переменная принимает на себя название поля, поэтому саму переменную нужно писать без скобок.
Тимур, не могли бы Вы поделиться файлом к этому уроку? Подписка у меня есть, но она считалась спонсорской только до 15 июля 2021. А вроде у Вас при изменении условий обратной силы закон не имел)
У меня именно под этим видео ссылка отсутствует, под другими (выборочно) вижу.
Не сочтите за жадность только, я после того, как выйду на постоянный доход, обязательно подтяну донат до спонсорского уровня 😇
Спасибо за Ваши уроки, они топовые!
Я добавил ссылку в описание к ролику.
Добрый день. Нужна ваша помощь. Есть подключение к папке. В ней сотни тысяч записей. Есть файлы с ошибками которые портят все работу с файлом. Как исключить строки с ошибками?
Добрый день! Выделить столбец - Заменить - Заменить ошибки.
Добрый день. Как делать перенос строки и табуляцию при редактировании формулы в диалоговом окне "Настраиваемый столбец"?
TAB и ENTER. Если Enter не работает, то SHIFT+ENTER.
@@comrade_excel В окне "Расширенный редактор" все так работает. А в диалоговом окне "Настраиваемый столбец", TAB перекидывает из окна формулы на соседние кнопки или поля диалогового окна, ENTER и SHIFT+ENTER просто закрывают окно, если внизу окна написано "Синтаксические ошибке не обнаружены".
@@R0manovi4 Тогда пробелами.
Я, наверно, правильно сделаю, если из общего места свои вопросы буду задавать здесь?
Вот начало из оттуда:
"Юрий Николаев
1. Очень долгий вариант: у меня порядка 200 000 строк в таблице, вариантов замены 21 штука. Уже работает 15 минут, а загрузилось всего 22 000 строк...
Да, забыл сказать, что использую только одну замену, а не две, как у вас. Есть вариант ускорения этой работы, или отказаться от этого преобразования в PQ и произвести это заранее в источниках?
Товарищ Excel - Power Query, Power Pivot, Python
Проверьте совпадает ли ваш код с моим. Используете ли вы Table.Buffer."
Проверка показала, что совпадение полное. Естественно, не совпадают только имена. Вот моё:
let
Источник = Table.Combine({ФЛ, ФЛ2, ЮЛ}),
#"Измененный тип" = Table.TransformColumnTypes(Источник,{{"Договор", Int64.Type}, {"Дата проверки", type date}}),
#"Добавлен пользовательский объект" = Table.AddColumn(#"Измененный тип", "Замена", each List.Last(List.Generate(
()=> [index = 0, txt = [РЭС]],
each [index] [index=0, txt=Text.Lower([Компания])],
each [index] [index=0, txt=[Замена_1]],
each [index]
В моем файле обе таблицы с заменами завернуты в функцию Table.Buffer. Проверьте.
@@comrade_excel Тимур - из зе бэст оф всех!!!
Урааа!!! Найден мой косяк.
Скорость замены ниже, чем при использовании VBA (в моём случае), но при использовании VBA нужно сначала загрузить всё через PQ, а потом задать команду на выполнение VBA. А при использовании просто PQ всё происходит за одно телодвижение :).
Спасибо!
@@ЮрийНиколаев-й1д Отлично!
Проделал все операции, как в ролике. Всё получилось. Но. Понятнее не стало :( Очень удобный язык. Обучать ему можно бесконечно. На каждый чих - своя функция со своим выпендрежем. У человеков, которые его придумали, точно не все с головой в порядке.