经过多次迭代,我正在处理错误消息,但是,在这里我已经没有想法了。
如果记录满足条件,我想更改记录的几列。如果我对所有记录执行操作而不检查条件,则运行正常。
无条件且无错误的声明
#"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
是记录而不是列表)
我认为这里的问题是您在 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
)
)
),