Получить результат предыдущей строки для нового вычисления

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

Я знаю, как это сделать в Excel, но не могу в Power Query.

Преобразование HTML-таблицы в профессиональный документ Excel
Преобразование HTML-таблицы в профессиональный документ Excel
Это самый простой способ создания Excel из HTML-таблицы.
Импорт excel в laravel в базу данных
Импорт excel в laravel в базу данных
Здравствуйте, дорогой читатель, в этой статье я расскажу практическим и быстрым способом, как импортировать файл Excel в вашу базу данных с помощью...
0
0
50
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Ваше объяснение и примеры не совсем понятны, но следующее может сработать для вас. Если это не так, незначительные настройки, вероятно, все, что необходимо.

Код, комментарии и изучение прикладных шагов должны информировать об алгоритме.

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"

Вы прекрасно поняли. И решение, которое вы нашли, блестящее, оно кажется простым, но это не так. Я работал над аналогичной функцией, но мне это не удалось. Большое спасибо

Nuno Ribeiro 21.08.2023 15:03

@NunoRibeiro Рад помочь. Поскольку мой ответ кажется вам нужным, отметьте его как принятый. Смотрите Что мне делать, когда кто-то отвечает на мой вопрос.

Ron Rosenfeld 21.08.2023 15:14

Другие вопросы по теме