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/...

Комментарии • 23

  • @comrade_excel
    @comrade_excel  3 года назад

    Файлы для спонсоров 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/

  • @ДмитрийНикитин-и8о
    @ДмитрийНикитин-и8о 10 месяцев назад

    Класс! Этот способ даже более понятный, чем с List.Accumulate

  • @nikbo6863
    @nikbo6863 4 года назад +2

    Тимур, супер. спасибо. пожалуйста, не пропадайте надолго! грусть нападает при отсутствии новых уроков. я к Комраду присоединился,когда еще не было тыщи человек,праздравляю уже за 2 перевалило! надеюсь к новому году цифру за 4 увидеть!!!!

    • @comrade_excel
      @comrade_excel  4 года назад

      Спасибо! Не пропаду. Хорошо бы 4, но сейчас что-то прирост замедлился, поэтому хотя бы 3 с небольшим бы...

    • @nikbo6863
      @nikbo6863 4 года назад +3

      @@comrade_excel В развитии темы про Веб-анализ как можно получить данные о количестве прироста пользователей по дням/неделям/кварталам и спрогнозировать цифру до определенной даты. Было бы интересно посмотреть это в новом уроке (как предложение). Функцию прогноза на мой взгляд знают единицы!+много кто сейчас смотрит на лайки в своих блогах,так что массе лайколюбителей будет интересно;)
      сделаем ставки,что будет более 4? Комрады, Кто еще поддержит? Ставка в 100р никого не утянет?

  • @romanvasiura6705
    @romanvasiura6705 4 года назад +1

    Спасибо!

  • @Igor_Ashurkov
    @Igor_Ashurkov 4 года назад +4

    List.Generate сложно зашел с точки зрения понимания). Нужно будет "под карандаш" разобрать пример. А в целом - отличный материал. Спасибо !

    • @comrade_excel
      @comrade_excel  4 года назад +2

      По List.Generate уже несколько видео. Посмотрите все. В первом я разбираю эту функцию подробно.

    • @ДмитрийНикитин-и8о
      @ДмитрийНикитин-и8о 10 месяцев назад

      @@comrade_excel где первый урок по функции List.Generate?

  • @ДмитрийНикитин-и8о
    @ДмитрийНикитин-и8о 10 месяцев назад

    Когда писал формулу сам, столкнулся с такими ошибками:
    1. В Text.Replace первым аргументом сначала вписал [Компания]. Потом понял, что надо писать имя поля, заданного в initial - [txt]
    2. Забывал про номер строки во втором и третьем аргументе функции Text.Replace - Замена_1[Найти] и Замена_1[Заменить]. Потом понял, что без номера строки формула работать не будет, а номер строки - переменная index.
    3. Долго потом не мог понять, в чём ошибка: Замена_1[Найти]{index} и Замена_1[Заменить]{index}. Потом до меня дошло, что index - название поля в записи, значит его надо указывать в квадратных скобках {[index]}
    3. В пользовательской функции имя переменной [ИсходныйТекст] писал в квадратных скобках. Потом понял, что переменная принимает на себя название поля, поэтому саму переменную нужно писать без скобок.

  • @skrald_88
    @skrald_88 3 года назад

    Тимур, не могли бы Вы поделиться файлом к этому уроку? Подписка у меня есть, но она считалась спонсорской только до 15 июля 2021. А вроде у Вас при изменении условий обратной силы закон не имел)
    У меня именно под этим видео ссылка отсутствует, под другими (выборочно) вижу.
    Не сочтите за жадность только, я после того, как выйду на постоянный доход, обязательно подтяну донат до спонсорского уровня 😇
    Спасибо за Ваши уроки, они топовые!

    • @comrade_excel
      @comrade_excel  3 года назад +1

      Я добавил ссылку в описание к ролику.

  • @zaharterentev2091
    @zaharterentev2091 3 года назад

    Добрый день. Нужна ваша помощь. Есть подключение к папке. В ней сотни тысяч записей. Есть файлы с ошибками которые портят все работу с файлом. Как исключить строки с ошибками?

    • @comrade_excel
      @comrade_excel  3 года назад

      Добрый день! Выделить столбец - Заменить - Заменить ошибки.

  • @R0manovi4
    @R0manovi4 3 года назад

    Добрый день. Как делать перенос строки и табуляцию при редактировании формулы в диалоговом окне "Настраиваемый столбец"?

    • @comrade_excel
      @comrade_excel  3 года назад

      TAB и ENTER. Если Enter не работает, то SHIFT+ENTER.

    • @R0manovi4
      @R0manovi4 3 года назад

      @@comrade_excel В окне "Расширенный редактор" все так работает. А в диалоговом окне "Настраиваемый столбец", TAB перекидывает из окна формулы на соседние кнопки или поля диалогового окна, ENTER и SHIFT+ENTER просто закрывают окно, если внизу окна написано "Синтаксические ошибке не обнаружены".

    • @comrade_excel
      @comrade_excel  3 года назад

      @@R0manovi4 Тогда пробелами.

  • @ЮрийНиколаев-й1д
    @ЮрийНиколаев-й1д 3 года назад

    Я, наверно, правильно сделаю, если из общего места свои вопросы буду задавать здесь?
    Вот начало из оттуда:
    "Юрий Николаев
    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]

    • @comrade_excel
      @comrade_excel  3 года назад +1

      В моем файле обе таблицы с заменами завернуты в функцию Table.Buffer. Проверьте.

    • @ЮрийНиколаев-й1д
      @ЮрийНиколаев-й1д 3 года назад

      @@comrade_excel Тимур - из зе бэст оф всех!!!
      Урааа!!! Найден мой косяк.
      Скорость замены ниже, чем при использовании VBA (в моём случае), но при использовании VBA нужно сначала загрузить всё через PQ, а потом задать команду на выполнение VBA. А при использовании просто PQ всё происходит за одно телодвижение :).
      Спасибо!

    • @comrade_excel
      @comrade_excel  3 года назад

      @@ЮрийНиколаев-й1д Отлично!

  • @МайклЛе
    @МайклЛе Год назад

    Проделал все операции, как в ролике. Всё получилось. Но. Понятнее не стало :( Очень удобный язык. Обучать ему можно бесконечно. На каждый чих - своя функция со своим выпендрежем. У человеков, которые его придумали, точно не все с головой в порядке.