Этот код должен работать:
let
Source = Excel.CurrentWorkbook(){[Name="Data"]}[Content],
group = Table.Group(Source, {"ProductID"}, {"temp", each _}),
list = Table.AddColumn(group, "list", each List.Skip(List.Accumulate([temp][ReceiptQty], {0}, (a, b) => a & {List.Last(a) + b}))),
table = Table.AddColumn(list, "table", each Table.FromColumns(Table.ToColumns([temp])&{[list]}, Table.ColumnNames(Source)&{"RunningQty"})),
final = Table.SelectRows(Table.Combine(table[table]), each [OnhandQty] >= [RunningQty])
in
final
Вот подход, который мы использовали при создании большой базы кода (многие миллионы строк кода), охватывающей больше, чем десяток платформ.
Создайте файл сборки для компиляции известной версии вашего программного обеспечения (или более простого фрагмента кода, аналогичного с точки зрения сборки) и сравните результат, полученный с помощью ваших новых инструментов сборки, с ожидаемым результатом. (построен с использованием проверенной версии инструментов сборки).
В моих проектах файлы сборки меняются не очень часто. Более того, я могу повторно использовать файлы сборки из более ранних проектов, изменяя только некоторые переменные (которые я переместил в легко узнаваемый раздел). Вот почему мне не нужно проводить модульное тестирование файлов сборки. В других проектах все может быть иначе.