Используя Power Query, я хочу сравнить значение с предыдущим значением, и если оно выше или ниже порогового значения %, оно получит это новое значение, в противном случае оно сохранит предыдущее значение в качестве ссылки для следующей строки. Короче говоря, я хочу сохранить это значение до тех пор, пока не произойдет значительное значение (более 3%).
Я знаю, как это сделать в Excel, но не могу в Power Query.


Ваше объяснение и примеры не совсем понятны, но следующее может сработать для вас. Если это не так, незначительные настройки, вероятно, все, что необходимо.
Код, комментарии и изучение прикладных шагов должны информировать об алгоритме.
let
//Change next lines to reflect actual data source
Source = Excel.CurrentWorkbook(){[Name = "Table13"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{
{"Date", type date}, {"Cost", type number}, {"Threshold", Percentage.Type}
}),
Costs = List.Buffer(#"Changed Type"[Cost]),
ResultList = List.Generate(
()=>[r=Costs{0}, idx=0],
each [idx] < List.Count(Costs),
each [r = if Number.Abs(1-Costs{[idx]+1}/[r]) > #"Changed Type"[Threshold]{[idx]+1}
then Costs{[idx]+1} else [r],
idx=[idx]+1],
each [r]),
#"Add Result Column" = Table.FromColumns(
Table.ToColumns(#"Changed Type") &
{ResultList}, type table[Date=date,Cost=number, Threshold=Percentage.Type,Result=number])
in
#"Add Result Column"
@NunoRibeiro Рад помочь. Поскольку мой ответ кажется вам нужным, отметьте его как принятый. Смотрите Что мне делать, когда кто-то отвечает на мой вопрос.
Вы прекрасно поняли. И решение, которое вы нашли, блестящее, оно кажется простым, но это не так. Я работал над аналогичной функцией, но мне это не удалось. Большое спасибо