Файлы к уроку:
Все уроки Продвинутого курса Power Query на этой странице и в этом плейлисте.
Описание
В этом уроке мы познакомимся с объектами Power Query, узнаем, что каждый из себя представляет и как создается.
Table — это двумерный массив из строк и столбцов.
Record — это строка таблицы.
List — это таблица из одного столбца или столбец таблицы.
В этом уроке мы узнаем/повторим:
- Как создать объект Table из таблицы Excel
- Как создать объект List
- Как преобразовать List в Table
- Как преобразовать Table в List
- Как создать список списков или List of Lists
- Как создать объект Record
- Как создать список из записей или List of Records
- Как создать Table из Record
- Как сослаться на Record из Table
- Как преобразовать таблицу в список записей или List of Records
Объект таблица
Подключимся к таблице на листе Excel.
Excel.CurrentWorkbook(){[Name="ПримерТаблицы"]}[Content]
Объект список
Создадим список из разных чисел.
{1,2,3,4,5,6,7,8,9,10}
Создадим список из списков.
{{1, "Кот"}, {2, "Пёс"}, {3, "Джигурда"}}
Создать список из чисел, идущих подряд.
{1..365}
Преобразуем список в таблицу
let
create_list = {"iosif, stalin", "lavrentiy, beria"},
tab_from_list = Table.FromList(
create_list,
Splitter.SplitTextByDelimiter(","),
null,
null,
ExtraValues.Error
),
cols_types = Table.TransformColumnTypes(
tab_from_list,
{{"Column1", type text}, {"Column2", type text}}
)
in
cols_types
Список уникальных значений столбца таблицы
let
get_table = Excel.CurrentWorkbook(){[Name = "ПримерТаблицы"]}[Content],
Товар = get_table[Товар],
list_distinct = List.Distinct(#"Товар")
in
list_distinct
Объект Record
Создадим запись из двух полей.
[ТабельныйНомер=666, Рабочий="Виктор"]
Создать таблицу из списка записей
let
create_records = {
[EmployeeID = 1, EmployeeName = "Fred"],
[EmployeeID = 2, EmployeeName = "John"],
[EmployeeID = 3, EmployeeName = "Jane"],
[EmployeeID = 4, EmployeeName = "Mary"]
},
tab_fromlist = Table.FromList(
create_records,
Splitter.SplitByNothing(),
null,
null,
ExtraValues.Error
),
col_expand = Table.ExpandRecordColumn(
tab_fromlist,
"Column1",
{"EmployeeID", "EmployeeName"},
{"EmployeeID", "EmployeeName"}
)
in
col_expand
Ссылка на запись таблицы
Сошлемся на запись (строку) таблицы.
let
get_table = Excel.CurrentWorkbook(){[Name="ПримерТаблицы"]}[Content],
get_record = get_table{0}
in
get_record
Сослаться на значение определенных столбца и строки таблицы
Получим первое значение из столбца Товар.
let
get_table = Excel.CurrentWorkbook(){[Name="ПримерТаблицы"]}[Content],
get_value = get_table{0}[Товар]
in
get_value
Создать столбец записей для таблицы
Чтобы создать столбец записей мы сначала создадим столбец индекса, а потом в новом столбец сошлемся на таблицу с использованием столбца индекса.
let
get_table = Excel.CurrentWorkbook(){[Name = "ПримерТаблицы"]}[Content],
tab_add_index = Table.AddIndexColumn(get_table, "Индекс", 0, 1),
tab_add_records_col = Table.AddColumn(
tab_add_index,
"Records",
each tab_add_index{[Индекс]}
),
col_select = Table.SelectColumns(tab_add_records_col, {"Records"})
in
col_select
Примененные функции
- Excel.CurrentWorkbook
- Table.FromList
- Splitter.SplitTextByDelimiter
- ExtraValues.Error
- Table.TransformColumnTypes
- List.Distinct
- Splitter.SplitByNothing
- Table.ExpandRecordColumn
- Table.AddIndexColumn
- Table.SelectColumns