Excel函数公式:设置数组的上、下限

在数字格式代码中,允许使用2个自定义条件,利用这个特性可以将超过或低于某值的数返回限定值,以便实现设置上、下限的效果。此外,与MAX、MIN函数设置上、下限不同的是,TEXT函数支持数组运算并能返回多个组。

如下图所示,员工甲的本周上下班打卡记录分别存放在B、C列中,C10、D10单元格为该公司午休的起止时间(假设该公司部允许跨夜间0点加班,上下班时间均为同一天)。据此,在D3单元格中可以使用以下公式计算午休时间段的加班时长:=MIN(D$10,MAX(C3,C$10))-MIN(D$10,MAX(B3,C$10)

Excel函数公式:设置数组的上、下限

即分别将下班、上班的时间都设置为上限15:00,下限设置为12:00后,进行相减,然后在D8单元格使用SUM函数求和进行合计。

如果不使用D3:D7单元格进行辅助计算,可以使用TEXT函数对B、C列的时间数组设置上、下限,例如在C8单元格输入以下公式可以直接计算出午休加班合计时长:SUMPRODUCT({-1,1}*TEXT(B3:C7,"[>="&D$10&""";[<="&C$10&"]"""&C$10&""";G/通用格式"])

Excel函数公式:设置数组的上、下限

其中,使用TEXT函数对B3:C7单元格设置上限、下限,;利用条件格式代码"[>=上限]下限"来返回上限值,由于上限值中可能包含0等易混淆为格式代码的字符,因此必须将"上限"以"文本"的形式输入到格式代码中,即多使用2对半角双引号将其包含。同理,在第2节段的条件格式代码中设置下限应返回的值;在第3个节段格式代码中,使用"G/通用格式"返回数值本身,即不超过上下限的数值本身。然后使用{-1,1}与之数组相乘后求和,得到第2列减去第1列数组之差的总和。

提示:如果C8单元格显示为小数,请设置单元格格式为时间格式代码,如果计算午休加班时间不足1周,即合计超过24小时,应设置单元格格式为:[h]:mm:ss。


分享到:


相關文章: