![eba50055e97f2dbb85e2780acef6db94.png](https://i-blog.csdnimg.cn/blog_migrate/ac65b4c5a4f40eff5a7244cb92f50123.jpeg)
在Excel中列举排列组合也是一个比较常见的需求。
比如给你0到9十个数字,列出从中选择5个数字的所有排列。
上述问题如果用函数或者vba来做,都会比较复杂,而且如果不是经常做这个,一时半会是做不出来的,要花不少时间去思考。
今天分享一种快速简单又高效的生成所有排列的方法,该方法不仅适用于数字也适用于任意字符串,而且很容易记住。
接下来,让我们一起来看看是如何实现的?
1.构造数据源,如下所示:
![0204b857646e4f1702cb1b739513cd30.png](https://i-blog.csdnimg.cn/blog_migrate/4b5a6f0769a12379a9db2dac04eab996.jpeg)
2.依次隔一列复制粘贴5列相同的数据,如下所示:
![0586732d4060c5e6e8086f1e02724335.png](https://i-blog.csdnimg.cn/blog_migrate/16ea2479b5bdf11e842162d771185e99.jpeg)
3.单击A1单元格,创建数据透视表,勾选【将此数据添加到到数据模型】(最关键的一步),如下所示:
![5d97f3f1b60aa75ace7ba3d65a4d7662.gif](https://i-blog.csdnimg.cn/blog_migrate/6489e8decee3fd15e1487fa039c15fa7.gif)
4.然后依次单击C1、E1、G1、I1单元格,创建数据透视表,保持【创建数据透视表】对话框中的其它选项不变,勾选【将此数据添加到到数据模型】,如下所示:
![f7a5c06931d87da5e596c3d00f6064c4.gif](https://i-blog.csdnimg.cn/blog_migrate/ddd35ac627d6cc6496ba3656593df81f.gif)
5.最后任意选择其中一个数据透视表,单击数据透视表字段中的全部,可以看到5个单元格区域都在数据透视表列表中,如下所示:
![df8c9331f4cb5e2050755571c55d3bc6.png](https://i-blog.csdnimg.cn/blog_migrate/0c5fcd2d26979483c4005ce9f763b08d.jpeg)
6.然后依次将【数据】字段都拉到数据透视表的行区域,设置数据透视表的【报表布局】为【以表格形式显示】,然后勾选【重复所有项目标签】,如下所示,10选5的所有排列数都出来了。
![00cf9878ef25345ede13476e4b40078d.gif](https://i-blog.csdnimg.cn/blog_migrate/5234b529df917381f5be935035f043da.gif)
7.由于10选5的排列数是不能有重复出现的,最后添加如下的数组公式把每一行的数据不重复的筛选出来即可。
=MAX(COUNTIF(A2:E2,A2:E2))=1
如下所示
![7bd94119ceb1e2469aef6d4bdea1d051.png](https://i-blog.csdnimg.cn/blog_migrate/5cdfd978d4f8f183b774c91e918397cf.jpeg)
通过上述的步骤,就可以生成10选5的所有排列数。
怎么样,是不是很简单,你可以马上打开Excel动手试试哦。
![8a8d7e18dc6eb62ba41e148dc4c32614.png](https://i-blog.csdnimg.cn/blog_migrate/1919f0354a5ec41517689748d6c0b84c.jpeg)