今天接到同事的一个需求,说是要开一个会,所有人名单提供过来后,需要对其进行分组,因为名单是有排序的,所以分组必须要按排序来,开始说是全顺序的,也就是分五组,第1,6,11,16……名放第一组,2,7,12,17……放第二组,以此类推。
给他写了一个公式,填充后,直接把名单就分组完毕了,后来他又来了,说要按蛇形分组,也就是12345放1-5组,678910放在5-1组,以此类推。然后又改了一个公式。
截个图把结果放上
如图A列显示的是所有的人员名单,C列是分组的列数,E1开始的那个表格是顺序排列的,L1开始的表格是蛇形排列的。
E1 =IF(COLUMN()<COLUMN($E$1)+$C$2,"第" & COLUMN()-COLUMN($E$1)+1 & "组","")
E2 =IF(COLUMN()<COLUMN($E$1)+$C$2,INDEX($A:$A,(ROW()-2)*$C$2+COLUMN()-COLUMN($E$1)+2),"")
L1 =IF(COLUMN()<COLUMN($L$1)+$C$2,"第" & COLUMN()-COLUMN($L$1)+1 & "组","")
L2 =IF(COLUMN()<=COLUMN($L$2)-1+$C$2,IF(MOD(ROW(),2)=0,INDEX($A:$A,(ROW()-2)*$C$2+COLUMN()-COLUMN($L$2)+2),INDEX($A:$A,(ROW()-2)*$C$2+($C$2+2)-(COLUMN()-COLUMN($L$2)+1))),"")
在使用时,第一列是啥就把E1 E2中的 $E 改成第一列所在的列号