假设您只有第1行的出勤日期,而没有其他信息,例如A和B列的标题,
将以下公式放在单元格B2
中并将其向下拖动,
=COUNTIF(INDEX(OFFSET($C2,COUNTA($1:$1)),),"x")/COUNTA($1:$1)*100
逻辑是使用 INDEX + OFFSET 函数动态返回右侧的列范围,并使用 COUNTA 找出有多少日期,以及您应该了解 COUNTIF 的用法,该计算是不言自明的。
编辑#2
查看工作表后,我想您是通过在B和C之间插入列来添加新日期的,因此您可能希望在单元格B2
中使用以下公式,以避免系统转移起始单元格引用自动:
=COUNTIF(INDEX(OFFSET($B2,1,"x")/COUNTA($1:$1)*100
逻辑与上一个逻辑相同,但对 OFFSET 引用进行了少许更改,因此它开始从B列而不是C列中查找范围。
我已经在Excel和Google表格中测试了以上内容,效果很好。如果您有任何疑问,请告诉我。干杯:)
,
粘贴到 B2 :
=ARRAYFORMULA(IFERROR(IF(LEN(A2:A),MMULT(IF(INDIRECT("C2:"&ADDRESS(ROWS(A2:A),MAX(IF(1:1<>"",COLUMN(1:1),))))="x",0),TRANSPOSE(COLUMN(INDIRECT("C2:"&ADDRESS(ROWS(A2:A),)))))^0))/
MMULT(IF(INDIRECT("C2:"&ADDRESS(ROWS(A2:A),))))<>"",)))))^0))*100,0))
本文链接:https://www.f2er.com/3169846.html