|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
1. 公式中的n,就是总人数,c,是签到人数,b,是完全未签到的人数,d,全勤人数;
2. 相应地,sName是全部人员姓名,sList是签到人员姓名,uList是完全未签到人员姓名,FullList是全勤人员姓名,这里是横向排列的,如果要纵向排列,可以使用TRANSPOSE函数转置。
3. 你可以按照自己的需求,单独输出上述各值。但是人员姓名列表自动溢出是非常好的功能,如果不需要自动溢出,也可以使用TEXTJOIN拼接到一个单元格内,但是人员数量较多时,单元格长或宽需要非常大才能显示全,除此想不出有什么必要不溢出,除非不需要名单。
4. 人员总数跟年份、签到类型无关,是你自己的选择或设置,即人员姓名行的横向长度。
=LET(n,SUM(N($O6:$FZ6<>"")),nCol,SUBSTITUTE(ADDRESS(1,14+n,4),1,),sName,INDIRECT("O6:"&nCol&"6"),S,INDIRECT("O8:"&nCol&"1000"),Src,FILTER(S,(YEAR(C8:C1000)=F1)*(E8:E1000="团体")),a,BYCOL(Src,LAMBDA(x,SUM(IF(TRIM(x)="",0,1)))),b,SUM(N(a=0)),c,SUM(N(a<>0)),sList,FILTER(sName,a<>0),uList,FILTER(sName,a=0),sFull,N(BYCOL(Src,LAMBDA(x,SUM(IF(TRIM(x)="√",1,0))))=ROWS(Src)),d,SUM(N(sFull)),FullList,IFERROR(FILTER(sName,N(sFull)),""),Res,VSTACK(HSTACK(n,c,b,d),TRANSPOSE(IFNA(VSTACK(sName,sList,uList,FullList),""))),Res)
|
|