楼主 gouweicao78 |
函数做组合实在不是一个好的方法,附件是以前做的8个、12个以内的组合(12个的可能有误,好久没验证,再说速度也慢,方法是基本相同的,因此建议不要看它),有兴趣的可以玩一下: 8个以内组合.rar 谢谢Apolloh提醒,本帖是组合而不是排列,原先把排列和组合混淆了。 顺便,也说一下排列和组合的区别: 1、排列:从n个不同元素中,任取m(m≤n)个元素,按照一定的顺序排成一列,叫做从n个不同元素中取出m个元素的一个排列. 从排列的意义可知,如果两个排列相同,不仅这两个排列的元素必须完全相同,而且排列的顺序必须完全相同,这就告诉了我们如何判断两个排列是否相同的方法. 2、组合:从n个不同元素中,任取m(m≤n)个元素并成一组,叫做从 n个不同元素中取出m个元素的一个组合. 从组合的定义知,如果两个组合中的元素完全相同,不管元素的顺序如何,都是相同的组合;只有当两个组合中的元素不完全相同时,才是不同的组合. 举例:从1、2、3这3个数字选取3个的排列有:123、132、312、321、213、231共6种,Excel的计算为=PERMUT(3,3)得到6,而组合仅1种,=COMBIN(3,3)得到1。 |
2楼 gouweicao78 |
可完成8选1、2、3、4……7、8等情况下的排列组合方式。 注意: 1、COMBIN(8,1)=8……COMBIN(8,4)=70……最大的组合数是70,也就是说公式最多只需要70行。 2、COMBIN(8,1)+COMBIN(8,2)……+COMBIN(8,8)=255,本解法采用枚举法,把这255种组合情况都列举出来再判定是否满足个数要求。 【公式解释】 【定义名称1】
公式中,Row($1:$255)的255这个数字根据所有组合数之和决定。 2^{7,6,5,4,3,2,1,0}根据备选组合的元素个数决定,例子中是8个。如果是6个备选元素,则为2^{5,4,3,2,1,0}。 【定义名称2】
由此取出1个数与J2单元格输入的个数相同的所有组合,并以8位数表示。 【公式】
比如: 00010011——这是一个8选3的组合方式,表示由第4、7、8个元素组成。 00000011——这是一个8选2的组合方式,表示由第7、8个元素组成。 【解法限制】因为MMULT函数所返回的结果不能超过5641个,这限制了排列组合元素不能超过12个。因为SUM(COMBIN(12,ROW(1:12)))=4095个,SUM(COMBIN(13,ROW(1:13)))=8191个。 不过,备选元素到12个的时候,其运算速度已经不是普通配置的机器能忍受的了。 |
3楼 aob |
谢谢分享,收藏学习 |
4楼 wangqilong1980 |
收藏,慢慢学习 |
5楼 guiyan |
我需要个10个数据的....下载了这个..自己修改了一晚上..结果还是不行.... 谁能帮帮忙哦.....急需......先谢谢大家了... |
6楼 goshin01 |
学习学习,谢谢! |
7楼 水之歌 |
学习来了,谢谢分享, |
8楼 E林好汉 |
谢谢分享! |
9楼 lrlxxqxa |
数据组合 |
10楼 rongjun |
学习了! |
11楼 海洋之星 |
谢谢分享,哈哈 |