excel36选7所有组合(Excel列出10选5所有排列情况)(1)

在Excel中列举排列组合也是一个比较常见的需求。


比如给你0到9十个数字,列出从中选择5个数字的所有排列。


上述问题如果用函数或者vba来做,都会比较复杂,而且如果不是经常做这个,一时半会是做不出来的,要花不少时间去思考。


今天分享一种快速简单又高效的生成所有排列的方法,该方法不仅适用于数字也适用于任意字符串,而且很容易记住。


接下来,让我们一起来看看是如何实现的?


1.构造数据源,如下所示




excel36选7所有组合(Excel列出10选5所有排列情况)(2)


2.依次隔一列复制粘贴5列相同的数据,如下所示:




excel36选7所有组合(Excel列出10选5所有排列情况)(3)


3.单击A1单元格,创建数据透视表,勾选【将此数据添加到到数据模型】(最关键的一步),如下所示:




excel36选7所有组合(Excel列出10选5所有排列情况)(4)


4.然后依次单击C1、E1、G1、I1单元格,创建数据透视表,保持【创建数据透视表】对话框中的其它选项不变,勾选【将此数据添加到到数据模型】,如下所示:




excel36选7所有组合(Excel列出10选5所有排列情况)(5)


5.最后任意选择其中一个数据透视表,单击数据透视表字段中的全部,可以看到5个单元格区域都在数据透视表列表中,如下所示:




excel36选7所有组合(Excel列出10选5所有排列情况)(6)


6.然后依次将【数据】字段都拉到数据透视表的行区域,设置数据透视表的【报表布局】为【以表格形式显示】,然后勾选【重复所有项目标签】,如下所示,10选5的所有排列数都出来了。


excel36选7所有组合(Excel列出10选5所有排列情况)(7)


7.由于10选5的排列数是不能有重复出现的,最后添加如下的数组公式把每一行的数据不重复的筛选出来即可。

=MAX(COUNTIF(A2:E2,A2:E2))=1

如下所示


excel36选7所有组合(Excel列出10选5所有排列情况)(8)


通过上述的步骤,就可以生成10选5的所有排列数。


怎么样,是不是很简单,你可以马上打开Excel动手试试哦。


excel36选7所有组合(Excel列出10选5所有排列情况)(9)

,