之前介绍过PowerQuery生成日期序列的几种方式,还有星友经常问,如何生成各种数字或者字母序列,这里就再来介绍一下。
这里先不考虑应用场景,单纯的生成各种序列,比如生成从1到5的序列,可以在PowerQuery查询面板中,右键,新建查询>空查询:

然后在编辑栏中输入:
= {1..5}

就可以得到1到5的一个列表,对这个列表,可以点击左上角的“到表”,将它变成普通的一个表。
以上就是生成序列的界面操作方式,下面不再介绍具体操作,直接写出各种序列的生成公式。
上面是生成连续的数字序列,可以直接用 {开始值..结束值} 的方式,对于不完全连续但有规律的列表,也可以做到,比如生成1到5、11到15,就可以这样写:
= {1..5 , 11..15}

利用{开始值..结束值}的方式,只能生成递增的列表,如果是递减的,比如生成从5到1的列表,如果你写成{5..1},将返回空表。
那怎么生成递减的列表呢?可以利用List.Reverse函数反转一下,将递增列表转换成递减列表:
=List.Reverse( {1..5})

另外{开始值..结束值},只能生成连续递增1的整数,如果你想生成1、3、5、7、9,或者1.1、1.2、1.3、1.4、1.5的序列,它也是做不到的。
其实还有个更通用的M函数可以实现,它就是List.Numbers,它有三个参数:
参数1:列表中的初始值参数2:列表中值的数量参数3:可选,递增幅度,如果省略,默认为1比如生成1到5的列表:
= List.Numbers(1,5)

生成1、3、5、7、9的列表:
= List.Numbers(1,5,2)

生成1.1、1.2、1.3、1.4、1.5的列表:
= List.Numbers(1.1 , 5 , 0.1)

生成5、4、3、2、1的列表:
= List.Numbers(5,5,-1)

是不是非常方便呢?
在生成数字列表上,只需要掌握List.Numbers这个函数就可以了,可以不再使用{开始值..结束值}的方式。
不过对于生成字母列表,还可以用到{开始字母..结束字母}的形式,比如生成A、B、C、D,就可以这样写:
= {"A".."D"}

如果需要小写的abcd:
= {"a".."d"}

或者下面的形式:
= { "A".."D" , "a".."d" }

= List.Reverse( { "A".."D"})

以上就是生成各种列表的方式,其实之前介绍的用Text.Remove 和 Text.Select移除和提取字符,就是嵌套了这些列表来实现的:
文本处理技巧:移除和提取
PowerBI星球的2023最新版内容合辑,值得你收藏学习:
.