
Описание
В этом уроке мы научимся еще одним способом ссылаться на другую строку в Power Query.
Такая операция нужна, например, чтобы найти разницу между значением текущей строки и предыдущей.
Решение
Ключевыми операциями в этом способе являются:
- Столбец индекса
- Объединение таблиц
Наша последовательность действий будет следующей:
- Мы создадим сначала 2 столбца индекса: первый будет от 0, а второй от 1
- Выполним операцию объединения таблиц: мы объединим запрос с ним же самим, но в качестве общего поля сверху укажем один столбец индекса, а снизу другой

Примененные функции
- Table.TransformColumnTypes
- Int64.Type
- Table.AddIndexColumn
- Table.NestedJoin
- JoinKind.LeftOuter
- Number.Type
- Table.SelectColumns
Код
let
source = Excel.CurrentWorkbook(){[Name = "Продажи"]}[Content],
types = Table.TransformColumnTypes(
source,
{{"Дата", type date}, {"Продажи", Int64.Type}}
),
table_index_col = Table.AddIndexColumn(types, "Индекс 1", 1, 1),
table_index_col_2 = Table.AddIndexColumn(
table_index_col,
"Индекс 2",
0,
1
),
table_join = Table.NestedJoin(
table_index_col_2,
{"Индекс 2"},
table_index_col_2,
{"Индекс 1"},
"Таблица",
JoinKind.LeftOuter
),
table_add_column = Table.AddColumn(
table_join,
"Продажи предыдущие",
each try [Таблица]{0}[Продажи] otherwise 0,
Number.Type
),
cols_select = Table.SelectColumns(
table_add_column,
{"Дата", "Продажи", "Продажи предыдущие"}
)
in
cols_select