场景一:排序
:指从给定个数的一组数据中取出指定个数的元素进行。

5个地区,每个地区有4种组合可能,不考虑排序,也就是5*4=20(种)可能。
Excel中有对应的函数求排序数:=PERMUT(元素总数,取的个数)
01 思路
注:POWER QUERY是Excel2016及以上自带的插件,主要功能是做数据处理;笛卡尔积表可以简单理解为表A和表B两个表相乘,得到的一张表(所有的可能)

02 步骤:
第一步:将数据导入POWER QUERY(简称pq);导入方式有很多种,这里使用来自表格/区域,进入pq编辑器


第二步:将表1复制(一般做笛卡尔积表的时候会有2张表,第2张表按照第一张的方式导入pq即可,这里的话,需要将表1复制作为第2张表)

第三步:在表1里添加自定义列【=表1(2)】

第四步:展开地区2 (table),笛卡尔积表就生成了


第五步:删除2列值相同的行:可以通过非重复值计数的结果进行判断,如果值为1,是值相同的,否则是值不同的,筛选留下值为2的

第五步:删除非重复计数列,将数据加载到Excel


关闭并上载:会将每个查询以表的形式加载到Excel,一个查询一个新的工作表
仅创建连接


场景二:组合
:指从给定个数的一组数据中取出指定个数的元素进行。

5个地区,组合个数为4+3+2+1=10种组合可能,在这里就是排序数的一半
Excel中有对应的函数求组合数:=COMBIN(元素总数,取的个数)
01 思路


02 步骤:(重复的步骤大家参考场景排序)
第一步:将数据导入POWER QUERY
第二步:添加列-序号;【添加列】==》【索引列】==》【从1】

第三步:复制表1
第四步:在表1里添加自定义列【=表1(2)】,并且展开(table)

第五步:【索引】列-【索引.1】列

第六步:筛选值大于0(或者筛选值小于0)


第七步:删除多余的列,将数据加载到Excel中
亲身测试好用的方法哟,但是power query对版本有要求,大家有没有更好的方法呢?欢迎大家在评论区留言!!!