H4=SUMPRODUCT(COUNTIFS($C$1:$C$1500,">="&IF(G4<F4,CHOOSE({1,2},F4,0),F4),$C$1:$C$1500,"<="&IF(G4<F4,{24,0.5}/24,G4)))
Có thể hiểu đại khái như vầy:
- Nếu Giờ bắt đầu (cột Fn) < Giờ kết thúc (cột Gn) (Vd: 6:00 < 8:45 ; 10:00 < 13:00 ; 02:00 < 05:00) thì dùng COUNTIFS() bình thường:
- =COUNTIFS($C$1:$C$1500, ">="&F4 ,$C$1:$C$1500, "<="&G4 )
- Cho dù có thêm SUMPRODUCT( COUNTIFS() ) bao bên ngoài COUNTIFS(), thì cũng không ảnh hưởng gì đến kết quả sau cùng.
- Ngược lại, Nếu Giờ bắt đầu (cột Fn) > Giờ kết thúc (cột Gn) (Vd: 22:00 > 0:30) thì dùng COUNTIFS() mảng:
- =COUNTIFS($C$1:$C$1500, ">="&CHOOSE({1,2},F4,0) ,$C$1:$C$1500, "<="&{24,0.5}/24 )
- => COUNTIFS($C$1:$C$1500, ">="&{'22:00','0:00'} ,$C$1:$C$1500, "<="&{'24:00','0:30'} )
- Sẽ cho ra kết quả là 1 Mảng, với phần tử 1 là kết quả đếm được cho khoảng thời gian từ 22:00 -> 24:00 (Vd: 150); và phần tử 2 là kết quả đếm được cho khoảng thời gian từ 00:00 -> 00:30 (Vd: 11)
- Với hai ý nghĩa như vậy nên tôi dùng IF() để lọc:
- ">="&IF(G4<F4 , CHOOSE({1,2},F4,0) , F4)
- "<="&IF(G4<F4, {24,0.5}/24 , G4)
- Cuối cùng SUMPRODUCT( {150,11} ) = 161
Thân