Файлы к уроку:
Все уроки Продвинутого курса Power Query на этой странице и в этом плейлисте.
Описание
В этом уроке вы узнаете:
- Как создать таблицу в Power Query с помощью функции #table
- Как преобразовать столбец таблицы в объект List
- Как сослаться на строку таблицы и получить объект Record
- Как получить значение из определенной ячейки таблицы
- Посчитать количество строк в таблице с Table.RowCount
- Посчитать количество столбцов в таблице с Table.ColumnCount
- Проверить является ли таблица пустой с Table.IsEmpty
- Получить самое первое значение в таблице с Table.FirstValue
- Получить обзорную информацию о таблице с Table.Profile
- Получить список названий столбцов таблицы с Table.ColumnNames
- Преобразовать таблицу в список столбцов с Table.ToColumns
- Преобразовать таблицу в список с Table.ToList
- Преобразовать таблицу в список записей с Table.ToRecords
- Преобразовать таблицу в список строк с Table.ToRows
- Создать таблицу из списка столбцов с Table.FromColumns
- Создать таблицу из списка с Table.FromList
- Создать таблицу из списка записей с Table.FromRecords
- Создать таблицу из списка строк с Table.FromRows
Примененные функции
- Excel.CurrentWorkbook
- Table.TransformColumnTypes
- Int64.Type
- #table
- Table.RowCount
- Table.ColumnCount
- Table.IsEmpty
- Table.FirstValue
- Table.Profile
- Table.ColumnNames
- Table.ToColumns
- Table.ToList
- Combiner.CombineTextByDelimiter
- Table.ToRecords
- Table.ToRows
- Table.FromColumns
- Table.FromList
- Splitter.SplitTextByDelimiter
- Splitter.SplitByNothing
- ExtraValues.Error
- Table.FromRecords
- Table.FromRows
Код
Подключение к таблице на листе Excel
Для подключения к таблице на листе Excel текущей книги используется функция Excel.CurrentWorkbook.
Для подключения к таблице в другой книге Excel применятся функция Excel.Workbook.
let
source = Excel.CurrentWorkbook(){[Name = "Таблица1"]}[Content],
cos_types = Table.TransformColumnTypes(
source,
{{"Дата", type datetime}, {"Код", type text}, {"Сумма", Int64.Type}}
)
in
cos_types
Создание таблицы функцией #table
Создадим следующую таблицу:

let
source = #table(
{"Имя", "Фамилия", "Должность"},
{
{"Владимир", "Путьн", "Президент"},
{"Дмитрий", "Медведев", "Председатель правительства"}
}
)
in
source
Ссылаемся на столбец таблицы
Ссылаясь на столбец таблицы мы получаем объект List со всеми значениями этого столбца.
let
source = table_created[Должность]
in
source
Ссылаемся на строку таблицы
Ссылаясь на строку таблицы мы получим объект Record.

let
source = sample_table{1}
in
source
Ссылаемся на ячейку таблицы
Ссылаясь на ячейку в результате мы получим значение этой ячейки.
let
source = sample_table[Дата]{1}
in
source
Считаем количество строк в таблице
В результате получим числовое значение количества строк в таблице.
let
source = Table.RowCount(sample_table)
in
source
Считаем количество столбцов в таблице
В результате получим числовое значение количества столбцов в таблице.
let
source = Table.ColumnCount(sample_table)
in
source
Проверяем является ли таблица пустой
Проверяем является ли таблица пустой. Получим значение TRUE/FALSE.
let
source = Table.IsEmpty(sample_table)
in
source
Получим первое значение таблицы
Получим значение из первой строки первого столбца. Такой же результат мы можем получить и просто сославшись на самую первую ячейку.
let
source = Table.FirstValue(sample_table)
in
source
Получить профиль таблицы
Получим таблицу такого вида с описательными статистиками и другой дополнительной информацией.

let
source = Table.Profile(sample_table)
in
source
Список имен столбцов
В результате получится объект List из заголовков таблицы.
let
source = Table.ColumnNames(sample_table)
in
source
Функции преобразования таблицы в список списков значений столбцов
Преобразовать таблицу в список столбцов. Элементов в списке будет столько, сколько столбцов в таблице. Каждый элемент списка — это список со значениями столбцов таблицы.
Обратной функцией является функция Table.FromColumns. Она наоборот создаст таблицу из списка столбцов.
// Таблицу превратить в список, где каждый элемент - это столбец
let
source = Table.ToColumns(sample_table)
in
source
// Из списка, где каждый элемент - это столбец создать таблицу
let
source = TableToColumns,
tab_from_cols = Table.FromColumns(source)
in
tab_from_cols
Преобразовать таблицу в список
Получится список. Каждый элемент списка — это строка исходной таблицы, в которой значений разделены заданным разделителем.
Обратной функцией является функция Table.FromList. Она превратит список в таблицу.
// Преобразовать таблицу в список
let
source = sample_table,
cols_types = Table.TransformColumnTypes(
source,
{{"Дата", type text}, {"Код", type text}, {"Сумма", type text}}
),
tab_to_list = Table.ToList(
cols_types,
Combiner.CombineTextByDelimiter(" -- ")
)
in
tab_to_list
// Преобразовать список в таблицу
let
source = TableToList,
tab_from_list = Table.FromList(source, Splitter.SplitTextByDelimiter(" -- "))
in
tab_from_list
Преобразовать таблицу в список записей
Функция Table.ToRecords преобразовывает таблицу в список. Каждый элемент списка — это запись, которая является строкой таблицы.
Обратная функция Table.FromRecords наоборот создаст таблицу из списка записей.
// Преобразовать таблицу в список записей
let
source = Table.ToRecords(sample_table)
in
source
// Преобразовать список записей в таблицу
let
source = TableToRecords,
tab_from_list = Table.FromList(
source,
Splitter.SplitByNothing(),
null,
null,
ExtraValues.Error
),
tab_from_recs = Table.FromRecords(tab_from_list[Column1])
in
tab_from_recs
Преобразовать таблицу в список списков строк
Функция Table.ToRows преобразовывает таблицу в список. Каждый элемент списка является списком значений строки.
Обратная функция Table.FromRows создаст таблицу из списка строк.
let
source = Table.ToRows(sample_table)
in
source
let
source = TableToRows,
tab_from_rows = Table.FromRows(source)
in
tab_from_rows