分享

List.Accumulate,参数组。批量添加列

 优雅野人 2022-03-21

一般情况下,我们如果需要添加列,可以一列一列根据需要进行添加,那如果我们需要根据固定的需求进行批量添加,那如何操作呢?

原始表

7e573d3ea4ba357deabdfa120142ce7c.png

结果表

d84aef175e2cd52e56e79ca5ff21106b.png

我们在添加的列的时候,有2个主要参数,一个是标题,一个则是添加列里的内容,如果我们需要进行批量添加的话,这2个参数最好是作为变量进行循环填充。我们来看下如何操作吧。

首先我们要确定Table.AddColumn里的2个参数,这2个参数应该是批量的,那代表着应该是列表的格式。

我们通过记录的格式来作为参数组。

faf0e4dcdfbd5c82fa954584408ac60c.png

这样就把参数组归类在一起了,方便我们后面进行调用。之后就是进行循环操作了,我们来看下代码公式。

List.Accumulate({0..列数},  源,  (x,y)=>Table.AddColumn(x, 参数组[标题]{y}, each 参数组[内容]{y} ) )

这里还需要解释几个内容:

1. 列数:需要增加多少列,就根据相应的填写。

2. x代表的是表格,也就是增加列后的表格名称,初始值是原始表格。

3. y代表的是第几次的循环,0代表第一次,同时也是作为参数组里的列对应值的位置。

4. each代表的是作为Table.AddColumn函数中所对应的。

这样我们就很很容易的可以进行批量进行所需要添加的列。

需要注意的几个地方:

1. 标题和内容必须匹配

也就是在参数组里的2个参数必须项目数一样(可以通过if语句在执行前进行判断)

2. 如果需要在添加列里使用公式,则函数参数设置成表类型。

因为在循环添加列时表是重复调用的,所以如果把表设置成函数的参数,方便后期循环调取使用。

我们以最简单的 [价格]*1.1这个公式为例。如果需要在添加列中使用这个公式,那我们可以设定自定义函数 (x)=>x[价格]*1.1,这样之后我们可以直接以表为参数进行替代。

此时我们的参数组里的内容则是函数类型。

37e210992724f02d2f214e4bd3e08ddb.png

在循环公式里,我们还需要注意两点,

  • 一个就是使用公式进行参数的调用。

  • each这里需要更改成其他方式书写。

  • 赋值常数和函数的书写方式批量也不一样

例如:

each 改成(a)=>格式,另外直接赋值常数和函数的书写方式也不一样,所以要进行判断区分。当然你也可以统一写成函数模式,直接调用。

例如:

如果要返回true,则可以直接使用公式(x)=>true,到时候直接使用参数调用的方式即可,不管参数是什么,返回的都是true。

如果觉得有帮助,那麻烦您进行转发,让更多的人能够提高自身的工作效率。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多