Excel Power Query 语法问题转换多列记录

问题描述 投票:0回答:1

经过多次迭代,我正在处理错误消息,但是,在这里我已经没有想法了。

如果记录满足条件,我想更改记录的几列。如果我对所有记录执行操作而不检查条件,则运行正常。

无条件且无错误的声明

#"Adjustment" = Table.FromRecords(Table.TransformRows(#"NewClmns",
   (r) = >Record.TransformFields(r, List.Transform(DateRange, 
      (c) => {c, each _ * #"DownrateFactor"} ) ) )),

有条件和错误的语句

value of type "TransformOperations" expected

#"Adjustment" = Table.FromRecords(Table.TransformRows(#"NewClmns",
    (r) = >Record.TransformFields(r, 
       if r[#"Programname.2"] = "Qualified" then
          List.Transform( DateRange, 
             (c) => {c, each _ * 0.9}) 
       else Record.ToList(r) ) )),
   

这似乎来自else语句,至少这是我纠正之前错误的地方(

else r
因为
r
是记录而不是列表)

excel powerquery m
1个回答
0
投票

我认为这里的问题是您在 else 分支中使用 Record.ToList(r) ,这是不正确的,因为 Record.TransformFields 需要一个转换操作列表

尝试:

#"Adjustment" = Table.FromRecords(
    Table.TransformRows(#"NewClmns",
        (r) => Record.TransformFields(r,
            if r[#"Programname.2"] = "Qualified" then
                List.Transform(DateRange, (c) => {c, each _ * 0.9})
            else
                List.Transform(DateRange, (c) => {c, each _})  // No transformation, returns the original value
        )
    )
),
© www.soinside.com 2019 - 2024. All rights reserved.