如何用excel简便的求出排列组合的所有结果?
本帖最后由 kinghai 于 2014-11-22 19:16 编辑如图片中描述,情形若有5种以上,有什么简单方法像土方法那样列出所有组合而不遗漏
1、建立一个3*3的表格(简化,方便理解,A1:C3),表格内随机填入0-100范围内的数;
2、在下面任一空白行开始,如在A5,输入“=OFFSET(A$1,MOD(INT((ROW(A1)-1)/3^(3-COLUMN())),3),)”,回车然后右拉至C5,再下拉3*3*3=27行,此时所有组合均出来了;
3、选中A5:C31,复制,在A33处粘帖,选择“只有值”,在D33求和(输入“=A33+B33+C3
3”回车)并双击小黑点,得到所有组合的和;
4、选中A33:D59,选择“数据”“排序”,按列D排列,就可以得到所有组合按大小排列;
5、选中A33:A59,选择“编辑”“替换”,将“A1的数据”替换为“A1”,“A2的数据”替换为“A2”,依此类推,直到A1-C3都替换出来。
大功告成,这样就可以知道,最大的组合是由哪几个位置上的数据组成,同理,最小的,或者排第10位的等等都一目了然了。哈哈哈~~虽然有点机械
如果想建立10*4的表格,则公式变为“=OFFSET(A$1,MOD(INT((ROW(A1)-1)/4^(10-COLUMN())),4),)”,依此类推。 以三种情况举例:
先在A1:C1写上0,在右边任一一列写上0-(2^3-1)
然后在A2位置写上公式:=FLOOR(MOD(E2/(2^2),2),1)
然后在B2位置写上公式:=FLOOR(MOD(E2/(2^1),2),1)
然后在C2位置写上公式:=FLOOR(MOD(E2/(2^0),2),1)
得到:
然后一拉就ok
要是把0换成L 把1换成H,就先把数据复制
然后右键选“选择性粘贴”-“值和公式”
然后再替换功能把0换成L 1换成H就行了
不错,是个方法{:victory:} excel我觉得在office里面是最难的!
页:
[1]