小勤:大海,上次你跟我说的分组合并同类项的方法(见文章《Excel固定类别内容分组合并同类项,PQ轻松实现》),只适用于分类情况不变的内容,但很多时候都是需要变化的啊。

postgresql 分组拼接函数 plsql分组求和_postgresql 分组拼接函数

大海:对的。那时因为没有讲过M语言及函数的相关内容,所以就告诉你一个通过单纯操作的方式来得到结果的方法。现在你通过《Power Query里的数值计算(聚合函数与操作)》不仅了解了PQ里的统计函数,还了解了分组操作形成的公式内容:

postgresql 分组拼接函数 plsql分组求和_Text_02

小勤:对的,其中List.Sum函数对按学员分组得到的各自的所有学分进行了求和。

大海:嗯。那么就可以来玩动态生成了。我们一边操作一遍理解其中的方法:

Step-01:获取数据

postgresql 分组拼接函数 plsql分组求和_postgresql 分组拼接函数_03

Step-02:分组

postgresql 分组拼接函数 plsql分组求和_list分组_04

结果如下:

postgresql 分组拼接函数 plsql分组求和_list分组_05

小勤:出错了!

大海:别紧张,我们就是要这样的内容。你想啊,刚才咱们分组的时候选择的是对课程进行求和,但课程是一堆文字,比如宋晓佩的课程是初级班、中级班和高级班,求和的话肯定会出错。

小勤:那怎么办?

大海:显然,我们不是想求和,是想将这几个内容连在一起,所以,我们可以修改一下其中的List.Sum函数来达到目的。

Step-03:修改函数,将分组操作生成公式中的【List.Sum([课程])】修改为【Text.Combine([课程],”、”)

postgresql 分组拼接函数 plsql分组求和_Text_06

改完后回车,结果出来了:

postgresql 分组拼接函数 plsql分组求和_Text_07

小勤:啊。原来还可以这样玩。

大海:对的,实际上我们通过分组得到了每个学员的课程内容,然后就可以用Text.Combine函数进行组合了。这个函数的用法如下:

Text.Combine(列表,连接符)

  • 列表:即多项内容形成的一个列表
  • 连接符:用于连接列表各项内容的文本字符

小栗子:

  • Text.Combine({“你”,”好”,“Excel到PowerBI”},”-“)
  • 结果:你-好-Excel到PowerBI

小勤:啊,这个函数真好啊,在Excel里面却没有这么一个函数,结果每次做文本连接麻烦屎了。

大海:现在最新的Excel2016里也有一个类似的函数了,叫TEXTJOIN,用法跟Power Query里的Text.Combine函数基本一样。

小勤:啊。真好。

大海:嗯,通过这样的修改,我们得到的分组结果就是可以动态刷新的了,最后我们就可以将数据上载了。

Step-04:数据上载

postgresql 分组拼接函数 plsql分组求和_list分组_08