excel 如果满足条件,则从上面的行取值.....Power Query

czfnxgou  于 2022-11-26  发布在  其他
关注(0)|答案(1)|浏览(248)

我是这个论坛的新手,我需要您在PowerQuery方面的帮助。我想做的是:我有一个物品的预期库存变化清单。一方面,如果我给供应商的订单进货,库存可能会增加。另一方面,如果销售订单出货,库存可能会减少。我希望有一个清单,上面写着物品代码、实际库存变动增减的金额和变动后物料的存量。例如:

Row      Column1 (A)          Column2(B)           Column3 (C)           Column4 (D)

1         Article           actual stock          amount of change       stock after change

2         A                 5                      -1                     4
3         A                 5                      -2                     2
4         A                 5                      -1                     1
5         B                 4                      -1                     3

股票总是相同的,因为变化是预期的,所以对未来也是如此。在Excel中,这对我来说是计算第4列的一个“简单“的解决方案。

D2 = IF(A1=A2;D1+C2;B2+C2)

所以如果arcicle仍然是相同的,我引用column4中实际行上面的值。
我在PowerQuery中尝试了什么?我向表中添加了两个索引列:

Column1 (A)      Column2(B)         Column3 (C)          Column4 (D)       Index(colum5)    Index.1(column6)

Article           actual stock     amount of change     stock after change

 A                 5                  -1                    4                    0             1
 A                 5                  -2                    2                    1             2
 A                 5                  -1                    1                    2             3
 B                 4                  -1                    3                    3             4

我通过索引将这两个表组合起来,并在此表中再次添加了artile。我添加了一个新的条件列,称为“Häufigkeit”,如果column1中的article等于新添加的column7中的article1,则应插入一个“Doulbe”,否则为“single”。

"= Table.AddColumn(#"addcolum", ""ConditionalColumn", each if [Häufigkeit]="Double" then ([colum4]{-1}+[colum3]) else [colum2+colum3])"

这不管用。
那么我如何才能解决这个问题。提前感谢

62lalag4

62lalag41#

看看这是否有帮助。如果文章匹配,它将从下面的行中提取值
如果需要上面的行,请将[Index]+1的每个示例更改为[Index]-1
否则请不要让您的问题混淆

let Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Added Index" = Table.AddIndexColumn(Source, "Index", 0, 1, Int64.Type),
#"Added Custom" = Table.AddColumn(#"Added Index", "Custom", each try if [article]= #"Added Index"{[Index]+1}[article] then #"Added Index"{[Index]+1}[value] else null otherwise null),
#"Removed Columns" = Table.RemoveColumns(#"Added Custom",{"Index"})
in  #"Removed Columns"

相关问题