Файлы к уроку:
Ссылка:
Описание
Подписчик попросил у меня совета по ускорению выполнения запроса. Оказалось, что в запросе очень много лишних шагов. Эти ошибки совершают очень многие начинающие пользователи Power Query, а именно совершают очень много лишних бессмысленных шагов.
Удалим лишние шаги. На рисунке ниже слева показаны шаги автора, а справа исправленный запрос. Мы удалим 15 шагов из 21.
Решение
Сначала мы удалим повторяющиеся шаги «Изменить тип». Можно всего лишь 1 раз изменить тип для всех нужных столбцов.
Дальше мы исправим шаги, которые фильтруют таблицу. Таких шагов 2. Во-первых, фильтрацию таблицы нужно делать как можно раньше, а во-вторых, нужно эти шаги объединить, ведь функция Table.SelectRows позволяет нам ввести намного больше одного условия.
Потом мы удалим лишние шаги «Переупорядоченные столбцы». В большинстве случаев порядок столбцов вообще не нужно никак трогать, а тем более делать это несколько раз.
Примененные функции
- Table.SelectRows
- Table.AddColumn
- Table.TransformColumnTypes
- Table.Group
- List.Sum
- List.Min
- List.Max
Код
let
source = Excel.CurrentWorkbook(){[Name = "Справочник"]}[Content],
rows_select = Table.SelectRows(
source,
each ([Уровень] <> null) and ([Вид работ] <> null)
),
tab_add_col_1 = Table.AddColumn(
rows_select,
"Стоимость за единицу",
each [#"Итого в БЦ (по гл.1-7) [Итог]"] / [#"Объём [Итог]"]
),
tab_add_col_2 = Table.AddColumn(
tab_add_col_1,
"ТЗ за единицу",
each [#"Трудозатраты (ч/ч+м/ч) [Итог]"] / [#"Объём [Итог]"]
),
cols_types = Table.TransformColumnTypes(
tab_add_col_2,
{{"Начало [НРЧ]", type date}, {"Объём [Факт]", type number}}
),
tab_group = Table.Group(
cols_types,
{"Вид работ", "Единица объёма ВР"},
{
{
"Объём по проекту",
each List.Sum([#"Объём [Итог]"]),
type number
},
{
"Объем [Факт]",
each List.Sum([#"Объём [Факт]"]),
type nullable number
},
{"Объем [План]", each List.Sum([#"Объём [План]"]), type number},
{
"Итого в БЦ (по гл.1-7) [Итог]",
each List.Sum([#"Итого в БЦ (по гл.1-7) [Итог]"]),
type nullable number
},
{"Начало", each List.Min([Начало]), type datetime},
{"Окончание", each List.Max([Окончание]), type datetime},
{
"Трудозатраты (ч/ч+м/ч) [Итог]",
each List.Sum([#"Трудозатраты (ч/ч+м/ч) [Итог]"]),
type number
}
}
)
in
tab_group
Курс Ускорения запросов Power Query
Номер урока | Урок | Описание |
---|---|---|
1 | Power Query Ускорение запроса №1. Удаляем лишние шаги | На реальном жизненном примере мы разберем как ускорить запрос удаляя лишние шаги. |
2 | Power Query Ускорение запроса №2. Выбираем правильный формат файла | Какой формат файла выбрать, чтобы запрос обрабатывался быстрее: XLS, XLSX, CSV? |
3 | Power Query Ускорение запроса №3. Уменьшить количество подключений | Уменьшение количества подключений позволит навести порядок в ваших запросах. |
4 | Power Query Ускорение запроса №4. Уменьшить количество шагов с Table.TransformColumns | Уменьшаем количество шагов с помощью функции Table.TransformColumns. |