Файлы к уроку:
Ссылки:
Объявляем функции
Объявление функции начинается с перечня параметров в скобках, за которыми следует знак равно и знак больше. Далее следует тело функции.
Параметры функции становятся переменными.
Для каждого параметра можно указать и тип данных.
Так как тело функции является выражением, которое возвращает какое-то значение (объект), то в теле функции можно использовать блоки let, которые возвращают какое-то значение (объект).
Функция без let:
// Перечисляем параметры с указанием типов данных
(m as number, h as number) =>
// Тело функции
m / Number.Power(h, 2)
Функция с let:
// Перечисляем параметры с указанием типов данных
(m as number, h as number) =>
// Тело функции с блоком let
let
bmi = m / Number.Power(h, 2)
in
bmi
Вложенные функции
Как и все выражения функции могут быть вложены в другие выражения, а могут и сами быть вложены.
Разберем пример, где функция будет объявлена внутри выражения let.
Создадим функцию для вычисления ежемесячного платежа по кредиту, а потом применим эту функцию к данным из столбца.
let
// Создадим функцию
monthly_payment = (loan_amt as number, int_rate as number, term as number) =>
Number.Round(
loan_amt * (int_rate / 12 + (int_rate / 12 / (Number.Power(1 + int_rate / 12, term) - 1))),
0
),
// Лист с числами
lists = List.Numbers(100000, 10, 50000),
// Преобразовать лист в таблицу
table = Table.FromColumns({lists}, {"Loan Amount"}),
// Применим пользовательскую функцию
col_monthly_payment = Table.AddColumn(
table,
"Montyly Payment",
each monthly_payment([Loan Amount], 0.05, 48),
Number.Type
)
in
col_monthly_payment
Примененные функции
- Number.Power
- List.Numbers
- Number.Round
- Number.Type
- Table.AddColumn
- Table.FromColumns
Курс по Языку М
Номер урока | Урок | Описание |
---|---|---|
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. |