Power Query Язык М №10. Объект List / Список
HTML-код
- Опубликовано: 6 окт 2024
- Зачем нужны списки, создание списков, сравнение списков, функции для работы со списками.
Файлы для спонсоров Boosty: boosty.to/comr...
Файлы для спонсоров ВК: comrade...
Файлы для спонсоров RUclips: • Post
🧑🏫 Индивидуальное обучение: comrade-xl.ru/...
💻 Страница урока на сайте: comrade-xl.ru/...
Файлы для спонсоров Boosty: boosty.to/comrade-xl/posts/8a50cf99-a28c-4ddd-a5ce-6a368bd64c41?share=post_link
Файлы для спонсоров ВК: vk.com/comrade.excel?w=wall-185123800_247
Файлы для спонсоров RUclips: ruclips.net/user/postUgkxKfqThecPunjdaqsq-OdpO_4NCfziSl0f
🧑🏫 Индивидуальное обучение: comrade-xl.ru/pq-training/
💻 Страница урока на сайте: comrade-xl.ru/2022/01/11/pq-mlang-list/
Спасибо большое за полезную информацию! Отдельная благодарность за преобразование #shared!
Спасибо за урок!
Рад, что вам понравилось!
Здравствуйте, Тимур.
Большое спасибо за новые (и старые тоже) уроки по Power Query.
Однажды я работал с диапазонами телефонных номеров, к примеру - {4951111111..4951111115} и получил ошибку - Expression.Error: Число находится вне диапазона 32-битного целочисленного значения. Оказывается, работа конструкция "две точки" ограничена максимальным числом 2^31-1=2147483647, а у меня только российские телефонные номера заканчиваются 9999999999. Пришлось заменить на функцию List.Numbers(Num1,Num2-Num1+1), которая отлично справилась с большими числами, но подозреваю и у неё имеются свои ограничения.
Здравствуйте, Виктор!
Спасибо за полезный комментарий!
Тимур,спасибо.матчасть должна быть всегда.надеюсь найду сейчас ответы как раз по теме,что у Вас хотел спросить.заткнулся на такой вроде бы простой задаче и она уже два дня не дает покоя
Честно искал решение сам-не нашел(
Тимур, подмогните, запутался в матчасти...вопрос достаточно легкий, но в
понимании что-то нашло одно на другое....
Тема затрагивает как общий вопрос формул М так и создание пользовательских
функций
Делаю функцию: из PQ->запрос из папки беру колонку имен файлов, имена файлов
имеют следующую структура _dd_mm_yyyy_HH_MM.xlsx
никак не могу теоретически провести следующую операцию и сделать из нее
функцию.
Может быть проблема в объявлении переменных...может в их понимании..
Когда все произвожу в PQ по шагам-все ровно, но функцию создать не могу (
1) берем весь столбец(Name) и удаляем из него окончание .xlsx -->
Text.Replace(txt, ".xlsx","")
2) делю столбец на две части с именованием новых столбцов "Дата" и "Время" и
тут пришел разрыв шаблонов
2.1) нужно задать переменную столбец, он же должен быть как текст (так как
должно условие применяться к каждой записи)... так как деление происходит
во-первых по формуле (Splitter.SplitTextByPositions({0, 12}, false), но
создаваться же должны столбцы...
ошибка в PQ-"Не удается преобразовать значение "_15_02_2022_09_30.xl..." в
тип Table."
3) в столбце "Дата" должен провести следующие действия:
3.1) взять десять символов начиная со второго ->следовательно первый и
последний отпадет (Шаг3)
и последующие шаги, но в них уже переменных нет....
Пробовал пройти и другим путем.. через создание функции через создание
дубликата столбца и дальнейшей его модификации, но также упираюсь в
непонимание правильного написания собственной функции, объявлении переменной
и ее использовании....и как при помощи М можно в дальнейшем делать
преобразования над столбцами....
При создании функции затык происходит на этапе - что объявлять и как
прописывать функцию, например Table.AddColumn(#"ШАГ", ... ) и как вписывать
ШАГ, если его еще нет???
На Ваших примерах с математическими функциями - все сходу понятно, а вот с
функциями над модификацией таблиц - нет
Если возможно и я смог правильно объяснить свои действия - поясните
пожалуйста
Пример столбца:
Name
_15_02_2022_16_50.xlsx
_14_02_2022_16_50.xlsx
_01_02_2022_16_50.xlsx
let Источник = (txt as text)=>
let
Шаг1 #"Замена" = Text.Replace(txt, ".xlsx",""),
Шаг2 #"Разделить" = Table.SplitColumn(#"Замена", each [Name],
Splitter.SplitTextByPositions({0, 12}, false), {"Дата", "Время"}),
Шаг3 #"Диапазон" = Table.TransformColumns(#"Разделить", {{"Дата",
each Text.Middle(_, 1, 10), type text}}),
Шаг4 #"Замена2" =
Table.ReplaceValue(#"Диапазон","_",".",Replacer.ReplaceText,{"Дата"}),
Шаг5 #"Замена3" =
Table.ReplaceValue(#"Замена2","_",":",Replacer.ReplaceText,{"Время"}),
Шаг6 #"Тип1" = Table.TransformColumnTypes(#"Замена3",{{"Дата", type
date}, {"Время", type time}})
in
#"Тип1"
in
Источник
0:35 Поспорю с автором. После базового обязательно нужно пройти продвинутый, а затем уже все остальные блоки
С листами, по-моему, надо всегда показывать формулу Лист.Трансформ ))
И до нее дойдет очередь.
Добрый день, спасибо за ваш труд! Очень нравятся ваша подача)
Скажите, пожалуйста, а есть ли возможность выбрать элементы списка по условию, где значение для сравнения в другом столбце, я использую list.select({..}, each _ [столбец]), но выдает ошибку
😀
Тимур,добрый день.вчера опубликовал вопрос,но прикрепил его к своему комментарию.если будет возможность-посмотрите пожалуйста. Спасибо
Добрый день!
О каком вопросе идет речь?
Тимур, подмогните, запутался в матчасти...вопрос достаточно легкий, но в
понимании что-то нашло одно на другое....
Тема затрагивает как общий вопрос формул М так и создание пользовательских
функций
Делаю функцию: из PQ->запрос из папки беру колонку имен файлов, имена файлов
имеют следующую структура _dd_mm_yyyy_HH_MM.xlsx
никак не могу теоретически провести следующую операцию и сделать из нее
функцию.
Может быть проблема в объявлении переменных...может в их понимании..
Когда все произвожу в PQ по шагам-все ровно, но функцию создать не могу (
1) берем весь столбец(Name) и удаляем из него окончание .xlsx -->
Text.Replace(txt, ".xlsx","")
2) делю столбец на две части с именованием новых столбцов "Дата" и "Время" и
тут пришел разрыв шаблонов
2.1) нужно задать переменную столбец, он же должен быть как текст (так как
должно условие применяться к каждой записи)... так как деление происходит
во-первых по формуле (Splitter.SplitTextByPositions({0, 12}, false), но
создаваться же должны столбцы...
ошибка в PQ-"Не удается преобразовать значение "_15_02_2022_09_30.xl..." в
тип Table."
3) в столбце "Дата" должен провести следующие действия:
3.1) взять десять символов начиная со второго ->следовательно первый и
последний отпадет (Шаг3)
и последующие шаги, но в них уже переменных нет....
Пробовал пройти и другим путем.. через создание функции через создание
дубликата столбца и дальнейшей его модификации, но также упираюсь в
непонимание правильного написания собственной функции, объявлении переменной
и ее использовании....и как при помощи М можно в дальнейшем делать
преобразования над столбцами....
При создании функции затык происходит на этапе - что объявлять и как
прописывать функцию, например Table.AddColumn(#"ШАГ", ... ) и как вписывать
ШАГ, если его еще нет???
На Ваших примерах с математическими функциями - все сходу понятно, а вот с
функциями над модификацией таблиц - нет
Если возможно и я смог правильно объяснить свои действия - поясните
пожалуйста
Пример столбца:
Name
_15_02_2022_16_50.xlsx
_14_02_2022_16_50.xlsx
_01_02_2022_16_50.xlsx
Честно весь материал пересмотрел-благо в конспектах уже...теоретически не понимаю... могу эти шаги в обычном запросе делать каждый раз-не особа проблема.но вот зацепил вопрос и понимаю,что пробел существенный в понимании. Благодарю за уделенное внимание
@@comrade_excel доброе утро.получится подсказать?
@@comrade_excel добрый вечер
Как правильно использовать List.Buffer?
Вот примеры использования comrade-xl.ru/?s=list.buffer
Добрый вечер.youtube возможно глючит,как я понимаю,что в Ваш адрес мои вопросы не доходят?
Неделя как то без внимания прошла....
Добрый вечер! Вроде мне не приходило от вас вопросов.
@@comrade_excel может чего я неправильно делаю....в этом чате просил помощи в разъяснении.посмотрите плиз,перекопировать очень много места
Ваши комментарии попали в СПАМ. Я посмотрю позже.
@@comrade_excel спасибо большое