❶AAAABB 所有可能的结果
首先我们来思考一下:
AAAA 的模式有 9 种可能结果,也就是 1111,2222,3333……8888,9999。
BB 的模式也有 9 种可能结果,也就是 11,22,33……88,99。
然后我们把它们排列组合起来,一共 9*9=81 种结果。
具体操作:❶ 选择表格区域,选择【数据】-「来自表格/区域」-【确定】。
❷ 新建一个【空查询】,输入 M 函数-将名称修改为可能的结果。
输入公式如下:= List.TransformMany(List.Transform({1..9},each _*1111),each List.Transform({1..9},each _*11),(x,y)=>Text.From(x)&Text.From(y))▲ 左右滑动查看
此时就做出逐一列示了 81 种结果。
简单解析一下:= List.TransformMany(List.Transform({1..9},each _*1111),each List.Transform({1..9},each _*11),(x,y)=>Text.From(x)&Text.From(y))▲ 左右滑动查看List.Transform是一个循环函数,意思是将列表中的每个值,进行循环处理。
其中:List.Transform({1..9},each _*1111),目的是生成 1111~9999List.Transform({1..9},each _*11),目的是生成 11~99▲ 左右滑动查看
然后用List.TransformMany 函数进行排列重组。
公式套路:=List.TransformMany(列表 1,each 列表 2,(x,y)=>返回方式)▲ 左右滑动查看
意思是将列表 1 中的每一个值,与第二参数的每一个值进行排列重组。
比如:=List.TransformMany({1..3},each {3},(x,y)=>x*y)▲ 左右滑动查看
结果为{3,6,9},就是将列表{1,2,3}中的每一个元素,跟{3}进行相乘。
Text.From(x)&Text.From(y))由于 M 函数对于数据类别有严格的限制,所以我们需要利用 Text.From 将数值转换为文本,再进行合并连接。 最后套上公式:
= List.TransformMany(列表 1,each 列表 2,(x,y)=>返回方式)= List.TransformMany( List.Transform({1..9},each _*1111),each List.Transform({1..9},each _*11),(x,y)=>Text.From(x)&Text.From(y))▲ 左右滑动查看