excel函数技巧:reduce+scan统计监考时间-趣帮office教程网

如图A列到D列为源数据,其中上半部分为考试时间,下半部分为监考老师的姓名。如何计算出每个老师的监考时间,公式如下:

=DROP(REDUCE("",F2:F7,LAMBDA(i,j,VSTACK(i,SUM(SCAN(0,TOCOL(IF(B6:D8=j,B3:D5,0/0),3),LAMBDA(m,n,NPV(-2,--TEXTSPLIT(n,"-")*24*60))))))),1)

公式思路:reduce(vstack(sum(scan(npv(textsplit……本公式采用reduce scan双重嵌套。

scan函数的功能是算出每一场考试的时间,并用sum函数计算出监考老师的整体时间。reduce负责将每个监考老师依次传递给scan函数。

IF(B6:D8=j,B3:D5,0/0),3)的使用是本例的巧妙之处。它利用了数组区域位置的特性,将不是监考人的其它时间全部变为错误值,再使用tocol函数时将错误值忽略掉,这样就得到了这个老师的监考时间。