本节开始我们学习函数的应用: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倍。