场景一:排序
从将A列里的5个地区中取出2个地区,列出所有可能,不考虑排序,也就是河北-山西和山西-河北是2种组合结果(排列:指从给定个数的一组数据中取出指定个数的元素进行排序,考虑排序。)5个地区,每个地区有4种组合可能,不考虑排序,也就是5*4=20(种)可能。
01 思路:出发点:将每个地区重复5次(产生重复的序列,再取对应的值);目的点:依次循环(1,2,34,5,1,2,3,4,5)取地区,再将出发点和目的点相等的删除
02:公式部分
出发点公式:=INDEX($A$2:$A$6,INT(ROW(A5)/5))
INDEX取单行/列的指定第几个位置的值,而位置是重复的序列(1,1,1,1,1,2,2,2,2);向下产生连续的数字,一般考虑使用ROW(返回行号),而连续的数字除以一个数字,行号如果是数字的倍数,结果为整数,否则就是小数,不管小数,直接向下取整(INT),就会产生循环的序列,进行总结归纳,重复序列通用公式:
INT(ROW(重复次数的行号)/重复次数)
函数解释
INDEX(单行/单列,第几个):返回单行/列中指定第几个位置的值
INT(数字):向下取整,只看整数部分
ROW(单元格):返回行号(只跟数字有关)
目的点公式:=INDEX($A$2:$A$6,MOD(ROW(A5),5) 1)
函数解释
1-N循环序列通用公式:MOD(ROW(N的行号),N) 1
MOD(数字,除数):取余【13÷5=2...3(3是余数)】
03:将出发点和目的点重复的删除
筛选出结果为TRUE的,删除
场景二:组合
从将A列里的5个地区中取出2个地区,列出所有可能,考虑排序,也就是河北-山西和山西-河北是1种组合结果(组合:指从给定个数的一组数据中取出指定个数的元素进行排序,不考虑排序。)5个地区,组合个数为4 3 2 1=10种组合可能,在这里就是排序数的一半
01 思路:第地区进行编号,在排序的基础上,筛选出发点地区对应的编号大于目的点地区对应的编号即可(或者筛选出发点地区对应的编号小于目的点地区对应的编号)
02:序号产生
可以鼠标拖拽,可以使用填充中序列功能
03:公式部分
出发点公式:=INDEX($A$2:$A$6,INT(ROW(A5)/5))
出发序号公式:=INDEX($B$2:$B$6,INT(ROW(A5)/5))
目的点公式:=INDEX($A$2:$A$6,MOD(ROW(A5),5) 1)
目的序号公式:=INDEX($B$2:$B$6,MOD(ROW(A5),5) 1)
04:筛选出发点地区对应的编号大于目的点地区的编号
这部分的公式和上面的是一样的,就不多说了,容易理解是用power query去解决该问题,有兴趣的可以看这篇文章一组数据中取出两个元素的所有可能之排列组合(power query篇),大家有什么好的方法,可以在评论区留言哟!!!!
,