我有不同数量的广告位(如“比赛场地”)并且必须将它们分配给不同数量的组(例如,4个字段,对于2个组,因此每个组分配2个字段以进行播放)。
一开始我以为我可以通过将“比赛场地”的数量除以组数然后向下舍入来在Excel中绕过它:
= ROUNDDOWN(B6/B5;0)
但现在,如果数字不“合适”,则会有空字段。
我可以在Excel或VBA中执行此操作(但我认为VBA会更实用)。
我尝试使用Google搜索结果,但我无法弄清楚“google for go”。我猜这个问题已经被不同名称/用途的其他人解决了。
有没有人对如何处理此问题有任何指示?特别是在群体数量以及“运动场”数量不同的情况下?我想在Excel中使用VBA自动完成作业。
先谢谢
答案 0 :(得分:1)
我不确切地知道您想要实现的目标,但这里有一个代码,可以帮助您分配所有字段。试试这个:
Sub AssignSlots()
Dim groupCount As Long, fieldCount As Long, rest As Long, fieldsPerGroup As Long, i As Long
groupCount = 6 'Range("B6").Value
fieldCount = 10 'Range("B5").Value
'if we don't have enought fields, exit program
If fieldCount < groupCount Then
MsgBox "There are less fields than groups!"
Exit Sub
End If
'calculate how many fields per group (Int(...) performs rounding down)
fieldsPerGroup = Int(fieldCount / groupCount)
'calculate rest of fields
rest = fieldCount - fieldsPerGroup * groupCount
For i = 1 To rest
'assign fieldsPerGroup + 1 fields to groups
Next
For i = rest + 1 To groupCount
'assign fieldsPerGroup fields to rest of groups
Next
End Sub
在上述程序中,组1-4将分配2个字段,组5和6将具有1个字段。