本帖最后由 edwin11891 于 2024-10-30 19:45 编辑
用WPS吧,什么新函数都有了。
有空把这个全部做好了。
1. 地区分配,自动一次性分配好。O2:
- =DROP(REDUCE("",{"新案","存案"},LAMBDA(x,y,VSTACK(x,LET(Nt,COUNTIF(N2:N49,y),SDn,ROUND(Nt*0.6,0),VSTACK(REPTARRAY({"山东"},SDn),REPTARRAY({"山西"},Nt-SDn)))))),1)
复制代码
2. 人员分配,自动全部一次性分配好,P2(Q2):
- =LET(fx,LAMBDA(ShName,ShNum,LET(t,TRANSPOSE(ShNum),s,DROP(REDUCE("",SEQUENCE(6),LAMBDA(x,y,IF(y=1,t,LET(sL,FILTER(TAKE(x,-1),TAKE(x,-1)>0),sN,ROWS(sL),sMin,IF(sN=1,1,MIN(sL)),VSTACK(x,TAKE(x,-1)-sMin))))),1),Res,IFERROR(VSTACK(t,s),0),a,TOCOL(Res),b,REPTARRAY(ShName,6),c,FILTER(b,a>0),c)),SDM,T4:T9,SXM,T12:T14,SDD,V4:W9,SXD,V12:W14,Res,REDUCE("",SEQUENCE(4),LAMBDA(x,y,VSTACK(x,fx(IF(MOD(y,2)=1,SDM,SXM),IF(MOD(y,2)=1,CHOOSECOLS(SDD,(y+1)/2),CHOOSECOLS(SXD,y/2)))))),DROP(Res,1))
复制代码
3. 如果新存案还有新类型,只需要向X列方向扩展数据,并将步骤2.公式中的SDD、SXD的范围扩展到相应列即可,比如还有第3种,分配人员数量后,公式中相应修改为:SDD,V4:X9,SXD,V12:X14。 |