使用 @ 写一个根据出库数量倒推出先进先出的出库明细

file

M函数如下:

let

    源 = Excel.CurrentWorkbook(){[Name="表1"]}[Content],
    PV= Table.ToRecords(Table.ReverseRows(Table.SelectRows(源,each [购货时间]<=#datetime(2018,9,3,0,0,0) and [产品]="A"))),
    Fx=(x as list,b as list,z as number)=>
        let
            A=x{0},
            B=z-A[购货数量],
            C=if B>0 then @Fx(List.Skip(x,1),b&{A},B) else Table.FromRecords(b&{A&[购货数量=z]})
        in
          C  

in
    Fx(PV,{},4)

需要事先筛选掉出库日期之后的日期,然后反转行,然后转换表成为record
第一参数为处理后的表,第二参数应该为一个{}盛放结果,第三参数为出库数量

有兴趣的可以看看

file
ID69416870

Ntt.Docomo