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。


分享到:


相關文章: