用excel制作运动员比赛分组表
提供另一种方法,公式+VBA组合:
按照上图设置好公式后,剩下的工作就由VBA完成了,这样工作表就可以连续计算,只要单元格F6?=1,F7=0,找到符合条件的分组,然后输出结果(19行以下)。其中1群,2群,3群人数足够,其中两个是6,然后可以手动调整群序。
Sub?sss()
答?=?19
为了什么?我?=?1?去哪?10000?
z1?=?" 1组:":?z2?=?"第二组:":?z3?=?"第三组:"
如果?细胞(6,6)?& lt& gt?1?还是?细胞(7,6)?& lt& gt?0?然后呢?
ActiveSheet。计算
GoTo?10
结束?如果
为了什么?j?=?2?去哪?17
选择?案子?细胞(j,3)
案子?1
z1?=?z1?& amp?细胞(j,1)?& amp?","
案子?2
z2?=?z2?& amp?细胞(j,1)?& amp?","
案子?其他
z3?=?z3?& amp?细胞(j,1)?& amp?","
结束?挑选
然后
细胞(一个,1)?=?左(z1,?Len(z1)?-?1)?& amp?";"?& amp?左(z2,Len(z2)?-?1)?& amp?";"?& amp?左(z3,Len(z3)?-?1)
答?=?答?+?1
10
然后
结束?潜水艇
上循环的上限是设置重新计算的次数。因为它是一个随机函数,所以不能保证找到结果。循环上限越大,找到结果的概率越大,但运行时间越长。这段代码仍然很粗糙。迭代10000次有时能找到5、6个结果,有时只能找到1个结果。