39、Power Query-Text.Combine函数应用

本节开始我们学习函数的应用:Text.Combine函数应用

Returns a text value that is the result of joining all text values with each value separated by a separator.

用法:       Text.Combine(text as list,  separator as nullable text) as text  
Argument Description
text The list of text to combine.
separator The separator to use when combining. This will only appear between the specified text values, not at the beginning or the end.
Example:    Text.Combine({"a", "b", "c"}, ",") equals "a,b,c"  

从上面的解释,不难看出Text.Combine有两个参数组成,一个是文本的集合,另一个是分隔符。

参与组合的必须是文本类型,而生成的结果也必然是文本类型(as text)。

我们看下图,参与合并的集合是1~9,数字类型,在转换时报错。


我们作如下修改即可。


下面我们通过一个之前实现过得案例来讲解Text.Combine的妙用。


上图是一些业务员在每个月的业绩,下面要在一行里面汇总每个人在所有月的总业绩。

效果如下:


之前我们实现过类似的需求,比较麻烦,下面我们就用Text.Combine()来实现。

同样,我们根据“姓名”对“业绩”做“分组”。


得到如下的结果:


这个时候我们去看它的编辑器里面的公式。

Table.Group(重命名的列, {"姓名"}, {{"总业绩", each List.Sum([业绩]), type number}})

这个公式的意思是:根据“姓名”,对“业绩”求和,赋值给新的列名“总业绩”,结果类型为数字型。

然后我们的需求不正是对月份进行汇总么,而显示的格式是按照“/”分割。

我们依葫芦画瓢,复制一份“{"总业绩", each List.Sum([业绩]), type number}”放在它后面,用“,”分隔。

 Table.Group(重命名的列, {"姓名"}, {{"总业绩", each List.Sum([业绩]), type number},{"月份", each Text.Combine([月份],"/")}} )

这里要格外细心,注意“{}”符号的范围。


效果达成:


是不是比之前的方法效率提高了N倍。

  • 8
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
### 回答1: 在Power Query,Each表达式的下划线在List.Transform函数和List.Generate函数的意义不同。 在List.Transform函数,下划线表示当前元素,该函数将列表的每个元素一个一个地进行转换。 在List.Generate函数,下划线表示当前循环次数,该函数将从初始值不断地循环生成新的元素,直到满足某个条件为止。 ### 回答2: 在Power Query,each表达式的下划线在List.Transform函数和List.Generate函数分别表示不同的含义。 在List.Transform函数,下划线代表当前元素。List.Transform函数可用于对列表的每个元素应用相同的转换操作。在每个转换操作,通过使用下划线来引用当前正在处理的元素。例如,如果我们有一个列表[1, 2, 3],并希望将每个元素都乘以2,我们可以使用List.Transform函数和each表达式来进行操作,如下所示: List.Transform([1, 2, 3], each _ * 2) 运行结果为[2, 4, 6]。 而在List.Generate函数,下划线则表示一个累加器。List.Generate函数用于生成一系列值,并在每次生成值时更新累加器。在每次生成值时,都可以使用下划线来引用当前的累加器值。例如,我们可以使用List.Generate函数生成一个从0到10的整数列表,如下所示: List.Generate(() => 0, each _ < 11, each _ + 1) 运行结果为[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]。 因此,在List.Transform函数,下划线表示当前元素,而在List.Generate函数,下划线表示一个累加器。根据具体情况,我们可以使用each表达式来应用相应的转换或生成操作。 ### 回答3: 在Power Query,each表达式的下划线在List.Transform函数和List.Generate函数分别表示不同的含义。 在List.Transform函数,each表达式的下划线表示一个占位符,用以表示列表的每个元素。通过使用each表达式,我们可以对列表的每个元素进行处理或转换。在Transform函数,我们可以使用下划线来引用当前正在处理的元素,通过对其进行操作来生成新的列表。 举个例子,假设我们有一个包含数字的列表[1,2,3,4,5]。我们可以使用List.Transform函数来将列表的每个元素乘以2,并生成一个新的列表。表达式可以写成List.Transform([1,2,3,4,5], each _*2),这里的下划线表示当前正在处理的元素。最终的结果将是[2,4,6,8,10]。 在List.Generate函数,each表达式的下划线表示用以生成列表的每个元素。List.Generate函数会根据一些指定的条件和生成规则来生成一个新的列表。我们可以使用下划线来引用每一次生成的元素,并指定生成条件。 例如,假设我们想生成一个包含斐波那契数列的列表,我们可以使用List.Generate函数来完成。可以将表达式写成List.Generate(()=>[0,1], each List.Last(_)<=100, each List.Combine({_,[0]+_[1],_[0]+_[1]}))。在这个例子,下划线用来引用生成的列表元素。通过不断计算前两个元素的和来生成新的元素,直到列表最后一个元素大于100为止。最终生成的斐波那契数列列表为[0,1,1,2,3,5,8,13,21,34,55,89]。 总之,在Power Query的List.Transform函数和List.Generate函数,each表达式的下划线分别表示列表的每个元素和生成列表的每个元素。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SAP剑客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值