Excel 일정 - 자정 이후 시간을 계산하여 음수가 되지 않도록 하려고 합니다.

Excel 일정 - 자정 이후 시간을 계산하여 음수가 되지 않도록 하려고 합니다.

이것은 내가 가진 문제와 내가 사용하고 있는 코드의 스크린샷입니다.

왜 내가 40 대신 음수를 가지고 있는지에 대해 누군가 나에게 도움을 줄 수 있다면 도와주세요. 정말 감사하겠습니다. 감사합니다!

답변1

파일 > 고급 > "이 통합 문서를 계산할 때" 섹션(끝까지 아래로 스크롤)에서 통합 문서에 대해 "1904 데이터 시스템 사용"이 올바르게 선택되어 있습니다.

이는 시간을 음수로 계산하는 데 필요합니다. (스위치를 끄면 부정이 모두 #으로 바뀌는 것을 볼 수 있습니다)

그러나 예를 들어 B16 및 C16에서는 날짜 없이 단순히 18:00 및 01:00에 시간을 입력합니다. 01:00 - 18:00은 정말 부정적인 시간입니다. 숫자로 표시하면 대략 -0.71입니다.

해결책은 자정 이후에 맞춰 각 개별 종료-시작 시간 계산을 변경하는 것입니다. 따라서 "C16-B16"을 "IF(C16-B16<0,C16-B16+1,C16-B16)"으로 바꾸십시오.

각 요일에 대해 그렇게 해야 하므로 공식이 다소 길어집니다.

해당 날짜의 근무 시간을 표시하려면 요일 사이에 추가 열을 추가하는 것이 좋습니다. 그런 다음 합계에는 해당 셀만 합산하면 됩니다.

편집 : 그것에 맞았습니다!

다시 편집하세요. 단위가 시간이 아니라 일이기 때문에 이전 게시물에서처럼 +24 대신 내 예에서처럼 +1을 사용해야 합니다.

최종 편집: 훨씬 더 짧은 해결책은 "C16-B16"을 "MOD(C16-B16,1)"로 바꾸는 것입니다. 이는 시간의 일부만 유지함으로써 작동합니다. 시간을 사용하면 소수 1은 24시간입니다.

답변2

24를 지나는 일반적인 공식은 다음과 같습니다.

 =EndTime - StartTime +(EndTime < StartTime)

모든 요일을 합산하기 위해 이 모든 것을 하나의 공식으로 결합하는 것은 어색하지만 실행 가능합니다. 각 쌍을 개별적으로 테스트해야 하므로 배열 입력 수식이 필요합니다.

아래 공식은 모든 EndTime이 짝수 열에 있다는 설정을 활용합니다. StartTimes는 홀수 열에 있습니다.

구성된 두 배열은 열 하나가 다릅니다. Excel 2007+ 버전에서는 ISODD/ISEVEN 함수를 사용하여 ODD/EVEN을 직접 테스트할 수 있습니다.

이 공식은 다음과 같아야 합니다.배열 입력:

=SUM(
MOD(COLUMN($C16:$O16),2)*$C16:$O16-
(MOD(COLUMN($B16:$N16),2)=0)*$B16:$N16+
((MOD(COLUMN($C16:$O16),2)*$C16:$O16-(MOD(COLUMN($B16:$N16),2)=0)*$B16:$N16)<0))
*24

또는 ISODD 및 ISEVEN을 사용하여:

=SUM(
ISODD(COLUMN($C16:$O16))*$C16:$O16-
ISEVEN(COLUMN($B16:$N16))*$B16:$N16+
((ISODD(COLUMN($C16:$O16))*$C16:$O16-ISEVEN(COLUMN($B16:$N16))*$B16:$N16)<0))
*24

또는 더 짧지만 이해하기 어렵습니다. MOD 함수를 사용하여 분수 구성요소만 유지하기 때문입니다.

=SUM(
     MOD(
         ISODD(COLUMN($C16:$O16))*$C16:$O16-
         ISEVEN(COLUMN($B16:$N16))*$B16:$N16,
     1))
*24

에게배열 입력수식, 셀이나 수식 표시줄에 수식을 입력한 후 길게 누르기 Ctrl-Shift치는 동안입력하다. 이 작업을 올바르게 수행한 경우 Excel에서는 수식 주위에 중괄호 {...}를 배치합니다.

스크린샷에 표시된 선에 대한 공식을 작성했습니다. 귀하의 숫자를 사용하면 결과는 37.9833입니다.

답변3

문제는 자정을 넘길 때입니다. 예를 들어 금요일, 토요일, 일요일의 첫 번째 행을 살펴보겠습니다. 매일 종료 시간은 오전 2시입니다. 예를 들어 금요일에 시간을 빼면 금요일 오후 6시에서 오후 6시 이전인 금요일 오전 2시를 뺀 시간이 됩니다.

부정적인 면을 피하면서도 차트의 시각적 모양을 좋게 유지하려면 IF 문을 사용해야 합니다. 금요일 사용량을 계산하려면:

=IF(K3 < J3, K3 - J3 + 24, K3 - J3)

IF 문에는 세 개의 섹션이 있습니다.

(1) 조건

K3 < J3

K3(종료 시간)이 J3(시작 시간)보다 작은지 확인합니다. 그렇다면 음수를 반환합니다(오전 2시는 오후 6시 "미만"입니다).

(2) 조건이 참인 경우

K3 - J3 + 24

조건이 true이면 Excel에서는 이 수식을 사용합니다. 발생할 수 있는 부정적인 영향에 대응하기 위해 24를 추가하도록 작성했습니다.

(3) 조건이 거짓인 경우

K3 - J3

조건이 true이면 Excel에서는 이 수식을 사용합니다.

요약

매일의 시간을 계산하는 데 사용한 방정식 대신 제공된 IF 문을 사용하십시오.

답변4

요일이나 날짜 정보 없이 가끔 자정을 넘기는 시간 계산과 비슷한 문제가 있었습니다. 내 시작 시간은 저녁이었고 때로는 다음 날까지 이어지기도 했기 때문에 몇 가지 공식을 함께 사용하여 나에게 딱 맞는 시간이 되도록 만들었습니다.

=IF(D4< C4,TEXT(D4-C4+24,"h:mm"),TEXT(D4-C4,"h:mm"))

(여기서 서식 지정상의 이유로 미만 기호 뒤에 공백을 추가해야 했습니다. 수식에서는 공백을 사용하지 않습니다.)

제 경우에는 D4가 종료 시간이고 C4가 시작 시간인 경우 간단합니다. 종료 시간이 시작 시간보다 빠르면 자정을 지나서 끝났어야 합니다. 중간 진술은 자정(+24)을 지나서 수정된 총 작업 시간을 제공합니다. 끝 부분에는 정기적인 뺄셈만 필요한 경우 작업 시간이 표시됩니다. "TEXT" 및 시간 형식이 없으면 +24 수학이 소수 값으로 표시된다는 것을 알았습니다.

관련 정보