Файлы к уроку:
Ссылки:
Как создать список
// Список чисел
= {1, 2, 3, 4, 5}
// Быстрый способ создать список с -5 до 10
= {-5..10}
// Если написать не в том порядке, то вернется пустой список
= {6..-6}
// Быстрый способ создать список из символов
= {"A".."}"}
// Список текстовых значений
= {"Bird", "Word"}
// Пустой список
= {}
// Типы данных элементов списка могут быть разными
= {1, "Word", #date(2021, 9, 3)}
// Внутри списка могут быть списки
{ {"Ария", {"Мания величия", "С кем ты?"}},
{"Iron Maiden", {"Iron Maiden", "Killers"}} }
Операции со списками
// Конкатенация списков
let
list_1 = {"Iron Maiden", "Killers"},
list_2 = {"Number of the Beast", "Piece of Mind"},
concat = list_1 & list_2
in
concat
Сравнение списков.
// Если порядок элементов не совпадает, то вернется FALSE
= {10, 20} = {20, 10}
// Если количество элементов не совпадает, то вернется FALSE
= {10, 20} = {10, 20, 30}
// Если совпадает количество элементов, их значения и порядок, то вернется TRUE
= {10, 20} = {10, 20}
Получить значение из списка
// Получить самое первое значение из списка
let
list_sample = {"Iron Maiden", "Killers", "Number of the Beast", "Piece of Mind"},
get_val = list_sample{0}
in
get_val
// Вернется ошибка, потому что в списке всего 4 элемента, а мы хотим получить несуществующий 5
let
list_sample = {"Iron Maiden", "Killers", "Number of the Beast", "Piece of Mind"},
get_val = list_sample{4}
in
get_val
// В данном случае вернется null
// Если дописать к ссылке символ "?", то вернется значение
// в случае если оно есть в списке и null, если такого значения нет
let
list_sample = {"Iron Maiden", "Killers", "Number of the Beast", "Piece of Mind"},
get_val = list_sample{4}?
in
get_val
Столбец таблицы — это список
// Если сослаться на столбец таблицы, то вернется список
let
tab = #table({"Band", "Album"}, { {"Iron Maiden", "Iron Maiden"},
{"Iron Maiden", "Killers"},
{"Ария", "Мания величия"},
{"Ария", "С кем ты?"} }),
band_col = tab[Band]
in
band_col
Все функции Power Query для работы со списками
Создадим таблицу, в которой будет информация обо всех функциях Power Query для работы со списками, включая описания и примеры использования.
let
list_1 = Record.ToTable(#shared),
rows_select = Table.SelectRows(
list_1,
each Text.Contains(Text.Lower([Name]), "list") and Text.Contains([Name], ".")
),
tab_add_col = Table.AddColumn(
rows_select,
"Meta",
each Value.Metadata(Value.Type([Value]))
),
cols_select = Table.SelectColumns(tab_add_col, {"Meta"}),
col_expand_1 = Table.ExpandRecordColumn(
cols_select,
"Meta",
{
"Documentation.Name",
"Documentation.Description",
"Documentation.LongDescription",
"Documentation.Examples"
},
{"Name", "Description", "LongDescription", "Examples"}
),
col_expand_2 = Table.ExpandListColumn(col_expand_1, "Examples"),
col_expand_3 = Table.ExpandRecordColumn(
col_expand_2,
"Examples",
{"Description", "Code", "Result"},
{"Example Description", "Example Code", " Example Result"}
)
in
col_expand_3
Примененные функции
- Record.ToTable
- Table.SelectRows
- Text.Contains
- Text.Lower
- Table.AddColumn
- Value.Metadata
- Value.Type
- Table.SelectColumns
- Table.ExpandRecordColumn
- Table.ExpandListColumn
Курс по Языку М
Номер урока | Урок | Описание |
---|---|---|
1 | Power Query Язык М №1. Простые выражения, let | Что такое let, одна или несколько переменных в in, вложенные блоки let. |
2 | Power Query Язык М №2. Создание функций М | Функции без выражения let, функции внутри выражения let. |
3 | Power Query Язык М №3. Создание функций М 2 | Функция как параметр функции, ключевое слово each. |
4 | Power Query Язык М №4. Переменные и идентификаторы | Идентификаторы с кавычками и без, допустимые и недопустимые идентификаторы. |
5 | Power Query Язык М №5. Текстовый тип данных | Особенности работы с текстовым типом данных. |
6 | Power Query Язык М №6. Числовой тип данных (Ввод, Сравнение, Точность, Бесконечность) | В этом уроке мы узнаем, что из себя представляет числовой тип данных. |
7 | Power Query Язык М №7. Дата, время, длительность и прочее(date, datetime, time, datetimezone) | Как создать значение с типом данных #date, #time, #datetime, #datetimezone, #duration. Преобразование значений одного типа данных в другой, арифметические операции, тонкости. |
8 | Power Query Язык М №8. Типы данных Logical, Null | Изучим логический тип данных и значение null. |
9 | Power Query Язык М №9. Объект Record / Запись | Что такое объект Record / Запись. Как создать запись, как сослаться на значения записи, как сравнивать записи, как объединять записи, как изменять записи. |
10 | Power Query Язык М №10. Объект List / Список | Зачем нужны списки, создание списков, сравнение списков, функции для работы со списками. |
11 | Power Query Язык М №11. Объект Table / Таблица | Получить строку, столбец. Объединение таблиц по вертикали. |
12 | Power Query Язык М №12. Как PQ работает с таблицами | В этом уроке вы узнаете как думает Power Query. |
13 | Power Query Язык М №13. Ключевое слово each | Зачем нужно ключевое слово each. |