excel 排列组合求和

比如在A1:A20有20个不同的数字,要求在B列到F列分别选出5个不同数字作为组合,并且在G列进行求和,请问如何实现,并且在下方N行内排列出所有的组合和并且求和,请问如何实现,不胜感激,如可以请解释的详细一点,谢谢大神们,如果太复杂,或者根本无法实现就算了

  20选5组合数共15504个, 用公式恐怕很难做到, 即使有了公式, 右拉再下拉也够费力的了. 所以建议用VBA(启用宏), 不要嫌麻烦, 毕竟这是一劳永益的事.


  按 ALT+F11 组合键打开代码窗口, 粘贴下面代码, 然后 按F5运行, 运行成功后会有一个"ok"的提示.


    Sub 组合()

    Dim arr(15504, 5) '20选5的组合数为15504

    For a = 1 To 16

    For b = a + 1 To 17

    For c = b + 1 To 18

    For d = c + 1 To 19

    For e = d + 1 To 20

    arr(n, 0) = Cells(a, 1)

    arr(n, 1) = Cells(b, 1)

    arr(n, 2) = Cells(c, 1)

    arr(n, 3) = Cells(d, 1)

    arr(n, 4) = Cells(e, 1)

    arr(n, 5) = Cells(a, 1) + Cells(b, 1) + Cells(c, 1) + Cells(d, 1) + Cells(e, 1)

    n = n + 1

    Next e, d, c, b, a

    [b1].Resize(15504, 6) = arr

    MsgBox "ok"

    End Sub


  

  详见附件:↓


温馨提示:内容为网友见解,仅供参考
第1个回答  2013-03-24
复杂倒不算复杂,但数据太大,几乎没法完成,因为不考虑数字的排位顺序的组合就有15504种,若考虑则有1860480种。
第2个回答  2013-03-24
使用二个辅助列,假设H和I列,以下步骤完成:
1、在H1中输入公式:=RAND(),下拉到H20;
2、在I1中输入公式:=RANK(H1,H$1:H$20) 下拉到I20;
3、B1中输入公式:=VLOOKUP(COLUMN(A1),IF({1,0},$I$1:$I$20,$A$1:$A$20),2,0),右拉到F1;
4、在G1中输入公式:=SUM(B1:F1)

通过以上步骤完成,从20个数中随机抽取5个不重复的数,并求和。
通过按F9,改变数据,每按一次将在B1到G1中得到一组新的数据。本回答被网友采纳
第3个回答  2013-03-24
不好意思这的确非常复杂,光用函数肯定是无法解决的,因为涉及到随机选取。
只能依靠VBA,可能只有大神能帮你,不过在这里提问基本上不会有人替你实现这样的功能。
十分抱歉。
第4个回答  2013-03-24
确实挺复杂的,(思路)方法如下:
用VBA 首先求出C 20 5 (20个数选出的组合情况)的组合情况
共有 20*19*18*17*16/(5*4*3*2*1)=15504 种
将其组合情况例如 1 2 3 4 5 付给A列作为其后的坐标值 就变为 A1 A2 A3 A4 A5
依次将其组合填到你需要的位置 对A1+A2+A3+A4+A5求和即可。

excel中排列组合求和怎么做?请帮忙。
可以选用SUM函数,具体操作看你要求哪些单元格的和。如果是规则的同一行或同一列,在上方f(x)后的文本框内输入“=SUM(A1:A10)”,或输入“=”后选中SUM函数,再手动拖框选择求和的范围,最后点击“确定”求和;如果是不规则的杂乱分布的单元格求和,可以输入“=SUM(A1,B2,A3,……,A10)”输入...

excel 排列组合求和
按 ALT+F11 组合键打开代码窗口, 粘贴下面代码, 然后 按F5运行, 运行成功后会有一个"ok"的提示.Sub 组合()Dim arr(15504, 5) '20选5的组合数为15504 For a = 1 To 16 For b = a + 1 To 17 For c = b + 1 To 18 For d = c + 1 To 19 For e = d + 1 To 20 arr(...

EXCEL如何实现这个问题:比如三个数,1,3,5,排列组合后乘积之和应为23...
A1=1, A2=3, A3=5.假设要在A4单元格求和,则可以在A4单元格输入公式:=A1*A2+A1*13+A2*A3 当然A1,A2,A3也可以不用键盘输入,直接用鼠标点到相应单元格也可以。

excel排列组合相加
=IF(INT((ROW(A1)-1)\/COUNTA(A:A))>=COUNTA(A:A),"",OFFSET($A$1,INT((ROW(A1)-1)\/COUNTA(A:A)),0)+OFFSET($A$1,MOD(ROW(A1)-1,COUNTA(A:A)),1))最好的方法还是用宏 Sub aa()Dim a%, b%a = [a65536].End(xlUp).Rowb = [b65536].End(xlUp).RowFor ai = 1...

...共八中排列组合结果分别为1-8,excel公式怎么写?
正就1,负就-1,然后下面再进行计算,你的三个数字分别和这8种情况相乘,公式如下,向下向右拖动填充即可。=$B6*C2 估计你是想求和,8种情况都求和了。你根据这8个结果选择自己想要的那种方案。当然,这个说的是总数量不多的情况,如果你有很多参数,数量很多,那还是要想办法使用公式的。

请问:excel可以3个以上的列中的条件自动求和啊,如:sumif(B:B,C:C...
)*(B2:B100="具体机型")*(C2:C100="具体品称")*(D2:D100="具体颜色")*E2:E100)回车并向下填充。不知道你“供商、机型、品称、颜色”这些具体数据在哪,自己填上就行。按排列组合,四个条件产生出来的组合很多,最好有一个“机型、品称、颜色”附表,我方便给你设置公式,你也方便操作。

EXCEL有什么排列组合?
EXCEL有排列和组合函数。排列函数为PERMUT函数,组合函数为COMBIN函数。组合函数:计算从给定数目的对象集合中提取若干对象的组合数。利用函数 COMBIN 可以确定一组对象所有可能的组合数。语法:COMBIN(number,number_chosen)排列函数:返回从给定数目的对象集合中选取的若干对象的排列数。排列为有内部顺序的对象...

关于excel排列组合的问题
1,COLUMN()))<=0,15-INDIRECT(ADDRESS(ROW(),1))-INDIRECT(ADDRESS(1,COLUMN()))>10),"",15-INDIRECT(ADDRESS(ROW(),1))-INDIRECT(ADDRESS(1,COLUMN()))横竖填充公式。显示出数字的单元格和行、列首的两个数字组成一个解。且没有重复解。虽然公式有点啰嗦,但是其实结构很简单。

excel将一列数据平均分列,使每列数据总和相同?
20个7组,每组2个或3个组合求和Excel怎样从数据集选r个数据排列组合列表(一)

Excel求公式
每四行四列为一组,每组的16个数中,随机选4个数求和后模以5得到结果。如有两个结果相同的组合,则符合要求转而求下一个四行四列。直到没有没有符合要求的结果。这必用排列组合来计算,非VBA不可。问题是:在4X4的16个格里是不是可以重复使用同一格,如A3+A3+B2+B2甚至A2+A2+A2+A2 还是列可...

相似回答