В конце 2025 года ко дню рождения мне подарили книгу. Автор Гил Равив “Power Query в Excel и Power Bi сбор, объединение и преобразование данных”. Книга в целом мне понравилась. В ней приведено много примеров по обработке данных с помощью запросов, их добавлению и объединению. Именно в последних терминах в книге, вернее в её переводе и есть неточности. По ходу работы с информацией книги становится понятным, где надо добавлять запрос к предыдущему запросу, а где запросы надо объединять. Второй минус, а для кого-то то возможно он будет и плюсом, является постоянное дублирование подготовки запроса в PQ и в BI. Я не использую на своём ПК Power BI, поэтому для меня лично это лишняя информация. К книге, как и принято сейчас, можно скачать примеры, рассматриваемые автором, а также результаты реализации запросов в Excel и Power BI.
Power Query решает задачи по обработке данных файлов Excel с помощью запросов языка M, предоставляющего пользователям также множество функций.
Функции языка M, как и сам язык M, специфичны.
Первое знакомство с PQу меня произошло лет десять назад после знакомства с технологией сбора однотипных файлов из папки с файламиExcel из видео Николая Павлова. В то время мф работали Excel 2013 и даже 2010. В настоящее время у меня стоит офис 2016. Даже на него не хотелось переходить после 2007 или 2003 офиса. Я работал с VBA и никакой PQ мне был не нужен. Сейчас это делаю просто ради интереса, который двигатель прогресса.
Ниже некоторые примеры простых и легких запросов, созданных на идеях Интернета (например- Товарищ Excel) или своих желаний.
Книга1_Простые примеры языка M.xlsx
Некоторые примеры запросов из файла Разбор функций:
- Вывод на печать во втором столбце квадратов чисел из первого столбца
let
// Создадим функцию
kwadrat = (term as number) =>
Number.Round(term*term),
// Лист с числами
lists = List.Numbers(1, 20, 1),
// Преобразовать лист в таблицу
table = Table.FromColumns({lists}, {"Loan Amount"}),
// Применим пользовательскую функцию
col_monthly_payment = Table.AddColumn(table, "Montyly Payment",
each kwadrat([Loan Amount]),
Number.Type)
in
col_monthly_payment
При создании имена столбцов таблицы берутся в кавычки, а при обращении к ним или ссылки на них в квадратных скобках. При ссылке на строку таблицы необходимо применять фигурные скобки.
Подсчет суммы чисел от 10 до 1 с шагом -1
let
generator = List.Generate(()=>10, each _ > 0, each _ - 1),
state
= 0,
funczia = (state,current)=>state+current,
itog = List.Accumulate(generator,state,funczia)
in
itog
Подсчет суммы чисел от 0 до 20 с шагом +1
let
Источник = List.Generate(()=>0, each _ <21, each _ + 1),
state = 0,
funczia = (state,current)=>state+current,
itog = List.Accumulate(Источник,state,funczia)
in
itog
Вывод списка месяцев
let
Источник = List.Accumulate({1..12}, {}, (x, y)=> x & {Date.MonthName(#date(2025, y, 01))})
in
Источник