cqwcns 发表于 2022-8-15 10:40

Power Query(M语言)跟进列表循环向表添加列的问题

有玩过Power Query(M语言)的大佬吗?


假设有个“源”表,有两列,分别是姓名、语文。
还有一个列表是“其他科目”。


我希望根据“其他科目”列表,循环向“源”添加列。
即分别向“源”表添加数学, 物理, 化学, 政治4列,值均为语文的分数+5分。
我尝试这样写,是不行的。
let
    其他科目 = {"数学", "物理", "化学", "政治"},
    源 = #table({"姓名", "语文"}, {{"小强", 90.3}, {"小红", 89.5}, {"小唐", 100}, {"小军", 98.5}, {"小明", 3}, {"小华", 86}, {"小花", 92.8}}),
    最终表 =List.Transform(其他科目, (x)=>Table.AddColumn(源, x, each 源[语文]+5))
in
    最终表

所以,根据列表循环添加列,应该怎么写?感谢指教。

lanfengye 发表于 2022-8-15 11:21

let
    其他科目 = {"数学", "物理", "化学", "政治"},
    源 = #table({"姓名", "语文"}, {{"小强", 90.3}, {"小红", 89.5}, {"小唐", 100}, {"小军", 98.5}, {"小明", 3}, {"小华", 86}, {"小花", 92.8}}),
    最终表 =List.Accumulate(其他科目,源,(s,c)=>Table.AddColumn(s, c, each [语文]+5))
in
    最终表

放羊的狼 发表于 2022-8-15 11:47

lanfengye 发表于 2022-8-15 11:21
let
    其他科目 = {"数学", "物理", "化学", "政治"},
    源 = #table( ...

果然还是大佬{:1_921:}

cqwcns 发表于 2022-8-15 12:46

lanfengye 发表于 2022-8-15 11:21
let
    其他科目 = {"数学", "物理", "化学", "政治"},
    源 = #table( ...

大佬,还有个问题请教一下。


如下下面源表,我可以通过“选择列 = 源[语文]”选择语文列。
但实际场景中,我希望通过引用变量来选择,类似这样 “源[其他科目{0}]”。
但这样写会报错,这种需求有没有办法实现,感谢指教,谢谢。


let
    其他科目 = {"语文"},
    源 = #table({"姓名", "语文"}, {{"小强", 90.3}, {"小红", 89.5}, {"小唐", 100}, {"小军", 98.5}, {"小明", 3}, {"小华", 86}, {"小花", 92.8}}),
    // 选择列 = 源[语文],
    选择列 = 源[其他科目{0}]
in
    选择列
页: [1]
查看完整版本: Power Query(M语言)跟进列表循环向表添加列的问题