Excel 要分配给X个人数的记录列表
我有一份记录单,我想平均分配给三个人 例如,对于15条记录,要分成三个人,分别是XYZ、PQR和ABC:Excel 要分配给X个人数的记录列表,excel,excel-formula,vba,Excel,Excel Formula,Vba,我有一份记录单,我想平均分配给三个人 例如,对于15条记录,要分成三个人,分别是XYZ、PQR和ABC: Case Name 123 XYZ 124 XYZ 135 XYZ 138 ABC 145 ABC 167 ABC 258 PQR 259 PQR 260 PQR 考虑到您的评论,如果案例在A1中,三个人的名字在F2:F4中,即在第4列中,请尝试在B2中,并复制下来以适合: =OFFSET(B$2,INT(ROW()-2)/COUNTA(F:F)-CO
Case Name
123 XYZ
124 XYZ
135 XYZ
138 ABC
145 ABC
167 ABC
258 PQR
259 PQR
260 PQR
考虑到您的评论,如果案例在A1中,三个人的名字在F2:F4中,即在第4列中,请尝试在B2中,并复制下来以适合:
=OFFSET(B$2,INT(ROW()-2)/COUNTA(F:F)-COUNTA(F:F)*INT((ROW()-2)/COUNTA(F:F)^2),4)
您有一个案例列表,这些案例将在一组人员中“平均”分配。
但是,如果案例数量是人员数量的精确倍数,则只能“平均”分配案例,否则剩余案例将按照人员列表中的顺序分配,即,如果您有31个案例要分配给4个人,那么三个人将有8个案例,而剩下的一个人将收到7个案例
假设案例列表(包括标题)位于B6:B40,同时具有标题的人员列表位于G6:G10,并且空白记录(如果有)位于每个列表的末尾。这些公式适用于编码为数字或字母的情况
要将案例逐个分配给每个人,请输入范围为C7:C40的以下公式数组
同时按[Ctrl]+[Shift]+[Enter]可输入公式数组
图1
要使用示例数据中显示的模式分配案例,我们首先需要在人员列表中添加一个字段,以计算案例的分布。这使得分配人员的公式更易于阅读、维护和缩短。在单元格H6中输入字段名计数,然后在范围H7:H10中输入以下公式数组:
图2
Then enter this `FormulaArray` in `E7` and copy to the end of the range.
=IFERROR(IF($B7="","",
IF(COUNTIF($G$7:$G$10,$E6)=0,
INDEX($G$7:$G$10,MATCH(0,COUNTIF(E$6:E6,$G$7:$G$10),0)*1),
IF(COUNTIF($E$6:$E6,$E6)<INDEX($H$7:$H$10,MATCH($E6,$G$7:$G$10,0)),$E6,
INDEX($G$7:$G$10,MATCH(0,COUNTIF(E$6:E6,$G$7:$G$10),0)*1)))),"")
图3公式、代码、逻辑方法,如有任何帮助,敬请谅解。谢谢你的帮助。好好看看,从你的数据中不清楚你想要什么。这不是一个获取代码的地方,而是供其他人帮助您完成迄今为止所做的工作的地方。如果您概述一些代码,然后在最后一段中寻求帮助,您将获得更多帮助。
=IF($G$7:$G$10="","",
INT(COUNTA($B$7:$B$40)/COUNTA($G$7:$G$10))
+((1+ROW($G$7:$G$10)-ROW($G$7))<=
MOD(COUNTA($B$7:$B$40),COUNTA($G$7:$G$10)))*1)
Then enter this `FormulaArray` in `E7` and copy to the end of the range.
=IFERROR(IF($B7="","",
IF(COUNTIF($G$7:$G$10,$E6)=0,
INDEX($G$7:$G$10,MATCH(0,COUNTIF(E$6:E6,$G$7:$G$10),0)*1),
IF(COUNTIF($E$6:$E6,$E6)<INDEX($H$7:$H$10,MATCH($E6,$G$7:$G$10,0)),$E6,
INDEX($G$7:$G$10,MATCH(0,COUNTIF(E$6:E6,$G$7:$G$10),0)*1)))),"")