ОК. Я подумал о совершенно другом методе, который имеет больше смысла для PQ, даже если он выглядит немного странно.Я думаю, что это должно работать значительно быстрее.
Создайте пару пользовательских столбцов, в которых указаны год - 1 и год - 2, чтобы получить последние два года.Теперь используйте функцию Merge Queries и объедините таблицу с самим собой.Cntrl-Select the Client, затем столбец, который вы создали для Year - 1 в верхней таблице, и Cntrl-Select the Client, а затем столбец для текущего года в нижней таблице.Расширьте сумму из результата, но назовите ее сумма предыдущего года или что-то еще.Сделайте то же самое для столбца года -2.
Затем просто добавьте пользовательский столбец, который проверяет 0 или нули в трехлетних суммах, и у вас есть ответ.
Вот как выглядела финальная таблица и полный M-код (очевидно, вы можете просто удалить столбцы с ссылками на предыдущий год / amt, когда закончите).
let
Source = Table1,
#"Merged Queries" = Table.NestedJoin(Source,{"Client", "Year"},Source,{"Client", "Year"},"Source",JoinKind.LeftOuter),
#"Removed Columns" = Table.RemoveColumns(#"Merged Queries",{"Source"}),
#"Added Custom" = Table.AddColumn(#"Removed Columns", "PY", each [Year]-1),
#"Added Custom1" = Table.AddColumn(#"Added Custom", "PPY", each [Year]-2),
#"Merged Queries1" = Table.NestedJoin(#"Added Custom1",{"Client", "PY"},#"Added Custom1",{"Client", "Year"},"Added Custom1",JoinKind.LeftOuter),
#"Expanded Added Custom1" = Table.ExpandTableColumn(#"Merged Queries1", "Added Custom1", {"Amt"}, {"PY.Amt"}),
#"Merged Queries2" = Table.NestedJoin(#"Expanded Added Custom1",{"Client", "PPY"},#"Expanded Added Custom1",{"Client", "Year"},"Expanded Added Custom1",JoinKind.LeftOuter),
#"Expanded Expanded Added Custom1" = Table.ExpandTableColumn(#"Merged Queries2", "Expanded Added Custom1", {"Amt"}, {"PPY.Amt"}),
#"Added Custom2" = Table.AddColumn(#"Expanded Expanded Added Custom1", "ThreeYearCheck", each not List.ContainsAny({[Amt],[PY.Amt],[PPY.Amt]}, {null, 0})),
#"Sorted Rows" = Table.Sort(#"Added Custom2",{{"Client", Order.Ascending}, {"Year", Order.Ascending}})
in
#"Sorted Rows"