Добрый день. Появилась проблема с простыми вычислениям в Query, не могу понять как прописать формулу в настраиваемый столбец. Проблема с ссылкой на ячейку выше. На начало месяца есть переходящий остаток, к примеру 50тыс р. Каждый день есть 3 меняющихся показателя, в данном примере
Показатель 1 (прибыль)
Показатель 2 (расходы)
Показатель 3 (Остаток)
Показатель 1 и 2 автоматически подгружаются в таблицу, показатель 3 высчитывается как: Показатель 3 (остаток) за прошлый день плюс показатель 1 за текущий день и минус показатель 2 за текущий день, таким образом получаем остаток на текущий день. Как это можно прописать в настраиваемый столбец расчеты Показателя 3, чтобы данные ссылались на строку выше и делали вычисления по текущему дню? Пример во вложении
Татьяна Саломонова, приложите пример с реальным видом данных, которые Вы грузите в PQ. Без формул; и, наверное, Вы из умной таблицы грузите, а не просто с листа.
написал: Татьяна Саломонова, приложите пример с реальным видом данных, которые Вы грузите в PQ. Без формул; и, наверное, Вы из умной таблицы грузите, а не просто с листа.
У меня данные в power bi подгружаются, в самом экселе нету
Татьяна Саломонова, 1. Так запрос скопируйте в excel. 2. Если данные конфиденциальные, сделайте пример в умной таблице excel в ТАКОМ ЖЕ виде, как они грузятся в PBI. У Вас же формулы там не грузятся.
1. Уважаемые модераторы, прошу переименовать тему в "Нарастающий итог, PQ". 2. Татьяна Саломонова, не знаю, где у Вас изнАчальная сумма в PBI. Сделал в отдельной таблице. К сожалению, в PQ, в отличие от SQL, нет простого способа обратиться к предыдущей строке. Довольно просто это сделать по индексу, но это будет безумно медленно. Используйте List.Accumulate или List.Generate. Вариант:
Код
let
initialSum = Table.FirstValue ( Excel.CurrentWorkbook(){[ Name = "initialSum" ]}[Content] ),
data = Excel.CurrentWorkbook(){[ Name = "data" ]}[Content],
typed = Table.TransformColumnTypes ( data, { { "Дата", type date } } ),
recs = List.Buffer ( Table.ToRecords ( typed ) ),
generate = List.Generate (
() => [ i = 0, result = Record.AddField ( recs{i}, "Показатель 3 (остаток)", initialSum ) ],
each [i] < List.Count ( recs ),
each [
i = [i] + 1,
result = Record.AddField (
recs{i},
"Показатель 3 (остаток)",
[result][#"Показатель 3 (остаток)"] + recs{i - 1}[#"Показатель 1 (прибыль)"] - recs{i - 1}[#"Показатель 2 (расходы)"]
)
],
each [result]
),
toTable = Table.FromRecords (
generate,
type table [ Дата = date, #"Показатель 1 (прибыль)" = number, #"Показатель 2 (расходы)" = number, #"Показатель 3 (остаток)" = number ]
)
in
toTable
P.S. Старайтесь выполнять то, что Вас просят. Я не просто так просил дать пример данных в нормальном виде. А то потом начнется: "А у меня начальная сумма в другом месте, как переделать, чтобы работало?"