Файлы к уроку:
Все уроки Продвинутого курса Power Query на этой странице и в этом плейлисте.
Описание
В этом уроке мы изучим объект Record в Power Query. Вы узнаете, что такое Record в Power Query и какие основные функции бывают для работы с этим объектом.
В этом уроке вы узнаете/изучите:
- Как создать Record в Power Query
- Как создать таблицу из записей с функцией Table.FromRecords
- Создание таблицы с функцией #table
- Ссылки на объект Record
- Добавление поля в запись с функцией Record.AddField
- Объединение записей с Record.Combine
- Посчитать количество полей в записях с Record.FieldCount
Record — это каждая строка таблицы. Если мы сошлемся на строку таблицы, то в результате получим Record (Запись).
Каждый элемент объекта Record называется Полем или Field.
Создание записи
Создадим одну запись из трех полей.
[Name = "Vladimir", Lastname = "Lenin", Gender = "Male"]
Создать список записей
Создадим список, внутри которого будет две записи.
{[Name = "Vladimir", Lastname = "Lenin", Gender = "Male"],
[Name = "Joseph", Lastname = "Stalin", Gender = "Male"]}
Преобразовать список записей в таблицу
Сначала список преобразуем в таблицу, потом развернем столбец записей.
let
source = create_records,
list_to_table = Table.FromList(
source,
Splitter.SplitByNothing(),
null,
null,
ExtraValues.Error
),
col_expand = Table.ExpandRecordColumn(
list_to_table,
"Column1",
{"Name", "Lastname", "Gender"},
{"Name", "Lastname", "Gender"}
)
in
col_expand
Преобразовать список записей в таблицу функцией Table.FromRecords
Если воспользоваться функцией Table.FromRecords нам будет достаточно одного шага.
Table.FromRecords(create_records)
Table.FromRecords({[Name = "Vladimir", Lastname = "Lenin", Gender = "Male"],
[Name = "Joseph", Lastname = "Stalin", Gender = "Male"]})
Создать таблицу функцией #table
При создании таблицы функцией #table можно в качестве первого параметра передать Record с перечнем заголовков полей.
#table(type table [Firstname = text, Lastname = text, Gender = text],
{{"Vladivir", "Lenin", "Male"}, {"Joseph", "Stalin", "Male"}})
Как сослаться на запись по индексу
Чтобы сослаться на запись нужно сослаться на таблицу и дописать индекс нужной строки в фигурных скобках.
create_table{0}
Сослаться на запись по значению поля
Получим запись, в которой поле Lastname = «Stalin».
create_table{[Lastname="Stalin"]}
Создадим запись, изменив существующую запись
Мы хотим создать запись, которая будет иметь те же значения, что и существующая запись за исключением одного поля.
create_table{0}&[Lastname = "Ulianov"]
Добавить поле в запись
Создадим запись, которая будет такой же как и существующая, но с добавлением нового поля.
Record.AddField(create_table{0}, "Birth Year", 1870)
Объединить записи
Данная формула обновит запись record_add_key. В нее будут добавлены недостающие поля, а существующие будут обновлены.
Record.Combine({record_add_key,
create_record_from_other_record})
Счет количества полей в записи
В результате получим целое число, которое обозначает количество полей в записи.
Record.FieldCount(combine_records)
Сравним две записи
При сравнении двух записей мы получим значение TRUE/FALSE.
combine_records=record_add_key
Примененные функции
- Table.FromList
- Splitter.SplitByNothing
- ExtraValues.Error
- Table.ExpandRecordColumn
- Table.FromRecords
- #table
- Record.AddField
- Record.Combine
- Record.FieldCount