根据他们的GPA,我总共有64名学生被分配到19个不同的流。学生们也表示他们喜欢溪流。只有5名学生可以分配到前三个流(A-C),4名学生可以分配到D组,剩下的15个流可以分别获得3名学生。我已将数据添加到Excel工作表,但不知道如何处理以实现上述结果。 The data is organized like this。我很高兴分享原始文件但无法找到上传的方式。
答案 0 :(得分:0)
这可以在vba宏中自动解决,但稍微快一点的版本使用公式做得有点快。它就像你已经开始一样,按gpa排名。
为每个学生插入2行。在这一行中,您将计算流的“填充”。如果你有无数的学生,你应该写一个小的宏来复制粘贴,这样你就可以获得其他每一行。遗憾的是,excel不接受将空值粘贴为无变化值。
通过搜索/替换更改排名,或者创建一个新表单,其中“所需分配”值为MOST WANTED流的最高值。 Cell C2应该是这样的:
=20-'originalsheet'!C2
我们正在制作新表
所以你有这些行:(学生 - 分配 - 可用性 - 学生 - 分配 - 可用性)
在分配行中,您将填写上述学生的分配,在可用性行中您将填写当前可用空格。
第一个学生被分配给他或她的选择。
分配行获取一个公式,用于调查当前单元格是否具有最低可能值。所以。第2行:第一个学生,第3行:分配,第4行:新可用性,第5行:学生愿望,第6行:我们在单元格C6中使用此公式
=if(sumproduct(max(($C5:$U5)*(($C4:$U4)>0)))=C6;1;0)
然后下一行,新的可用性就是
=C4-C6
将公式向下粘贴。对于完全相似的GPA学生,您可能会遇到麻烦,但您从上到下的排名是该计划的优先级。我没有原始文件,我没有时间从图像构建它,但它看起来像我的微小的测试设置。
比手工操作稍微容易一点,但又一次;如果你有很多学生并经常这样做 - 请在vba部分询问。
要点: