如何在excel中已知一堆数字,然后筛选出某几个数字加起来的和在一固定区间并显示筛选出来数字的所有组合? 255
像这样的排列组合问题,可以通过构建辅助列解决,在前4列列出所有数字,第5列新建辅助列,条件为=IF(AND(SUM(A1:D1)>10,SUM(A1:D1)<25),A1&","&B1&","&C1&","&D1,"")。
如下图:
但这种方式需要20^4行数据,不是很实用。
而使用vba可以很快地解决这个问题:
Sub 排列组合()
Dim b, c, d, e, f As Integer
b = 2 '从B2开始生成
For c = 1 To 20
For d = 1 To 20
For e = 1 To 20
For f = 1 To 20
sumthis = c+d+e+f
if sumthis>10 and sumthis <25 then
Range("b" & b) = c & "," & d & "," & e & "," & f
b = b + 1 '跳转到下一单元格
Next
Next
Next
Next
Next
End Sub
复制以上代码,打开excel文件,按alt+F11键,在上方菜单中选择插入模块,粘贴该代码,按F5运行即可。
是否可以加下好友,具体问问?我想做一个班级成绩的统计表,能筛选分析全体同学几个学科成绩总分那种。比如我们班有1-35号同学,数学、语文成绩各不相同,我想每五个同学为一组,使每组同学的总成绩都在一个特定区间,并显示所有组合,这样每个组都比较均匀不会有偏颇。感谢!
直接私新我吧