본문 바로가기
엑셀

[엑셀] If함수의 활용 - 시간계산 논리값 함수 작성 하는 방법.

by 행아아빠 2020. 3. 14.

안녕하세요.

행아아빠입니다.

이번 #엑셀 내용은

#IF 함수의 활용입니다.

엑셀 사용하시면서 IF 함수는 다들 들어보셨을것 같아요.

활용도가 굉장히 많고, 또 유용하게 어디든 쓰일 수 있는 함수이기 때문일것 같은데요.

오늘은 이 IF함수로 작성할 수 있는 내용으로 설명드려보려고 합니다.

이미 제가 작성한 내용중에 IF를 활용해서 작성한 내용들도 많이 있으니, Case By Case로 보시고 확인해주시면 될것 같아요.



▼ 오늘 질문 내용은 아래와 같습니다.


시작시간, 종료시간에 따른 정상, 이상 판별 수식 질문.

시작 시간이후 일정 시간이 경과하여 종료되어야 정상으로 판별.

시작 시간이후 5분이 경과하지 않고 종료되면 이상으로 판별.

시작 시간보다 종료시간이 이른 시간인 경우는 이상으로 판별. 다만, 늦은저녁시간(([예]23:30~01:20))에서 시간이 경과하여 00시 이후가 되어 시작시간보다 종료시간이 이른 시간이 된 경우에는 정상으로 판별.

시간 데이터가 수식에서 일반 숫자 데이터를 다루는 것과 달라 활용하기 힘드네요.

질문 내용으로 보아 굉장히 간단하게 작성될 수 있는 내용일것 같습니다.

하지만, 질문자님께서 수식을 작성하기 어려움을 느끼신것은 일반 숫자가 아닌,

시간으로 작성된 데이터를 일반 숫자로 값을 판별해야 하기 때문에 어려움을 느끼신것 같습니다.


우선은 질문에서 제시해주신 샘플의 시작시간과 종료시간값을 작성해주신 파일을 업로드해주셨습니다.

    이 시간을 "종료시간-시간시간 = ?"으로 나온 결과값에 따라 "정상", "이상" 이라는 텍스트로 결과값을 반환시켜주면 되겠네요~

    질문자체가 수식을 작성하기 위한 조건이 되겠지만,

    다시 한번 조건을 정리해보면, 5가지가 될 것 같습니다.

    1. 시작후 5분 이후에 종료가 되면 "정상"

    2. 시작후 5분 이내에 종료가 되면 "이상"

    3. 시작시간과 종료시간이 동일하면 "이상"

    4. 시작시간보다 종료시간이 빠르면 "이상"

    5. 시작시간 이후 +1일이 되어 00시 이후가 된 경우 "정상"


종료시간 - 시간시간 = 6분이 나오면 "정상", 4분이 나오면 "이상... 등으로 작성하면 되겠네요? 이렇게는 쉽습니다.

 

    첫번째 작성된 데이터의 경우에는 종료시간 - 시작시간 = "1시간 12분"이라는 결과가 나오게 됩니다.

    따라서, 판별유무로는 시작시간 이후로 5분이 지나서 종료되었기 때문에 "정상"이라고 나와야겠죠!!

    하지만, 여기서 =IF(SUM(D2-C2)>5,"정상")이라고 수식을 작성하시면, FALSE값이 나오게 됩니다.

    D2-C2는 1시간 12분으로 5분을 넘어가기 때문에 "정상"이라고 나와야 하는데 말이죠!!

    여기서 하나 실수한 부분이 1시간 12분이라는 것은 우리가 시간을 00시:00분으로 읽기 때문입니다.

    엑셀에서는 00시:00분을 일반 숫자로 초, 분, 시간 단위로 변경을 해줘야 일반 숫자로 바뀌게 되는 것 입니다.

    그럼, 질문에서 제시해준 단위의 기본은 분 단위이기 때문에

    1시간12분이라는 값을 분단위로 변경하여 일반숫자로 값이 나오게 바꿔주던지,

    수식에서 5분이라는 것을 시간단위로 바꾸어 주면 되겠네요!!


따라서 수식 작성은

    =IF(SUM(D2-C2)>5/1440,"정상") 이렇게 작성해 주셔야 원하는 결과값이 나오는 수식이 완성 되겠습니다.

    1440이란 숫자는 24시간을 분으로 환산하면 1,440분이 되는 숫자 입니다.


그럼 이제 나머지 조건들에 맞게 다른값들도 "정상", "이상"의 값으로 판별할 수 있는 결과값이 나오도록

    수식을 쭉 작성해 보고 수식을 드래그 또는 복사하여 결과값을 확인해 보겠습니다.

 

    =IF((SUM(D2-C2))>SUM(5/1440),"정상",  → D2-C2가 5분보다 크다면, "정상"

    IF((SUM(D2-C2))<SUM(5/1440),"이상",    → D2-C2가 5분보다 작다면, "이상"

    IF(C2=D2,"이상",                                 → C2가 D2와 동일하다면, "이상"

    IF(C2>D2,"이상",                                 → C2가 D2보다 크다면, "이상"

    IF(C2<D2,"정상")))))                            → C2가 D2보다 작다면, "정상"

 

질문에서는 시작시간 이후 +1일이 넘어가도 "정상"이라고 작성해 주셧지만,

1일이 넘어가거나, 1일이 넘어가지 않더라도 5분을 기준으로 작거나 크다면 "정상", "이상"을 판별하기 때문에

수식을 작성할때 이에 대한 조건은 넣지 않은 것 입니다.



이상으로 시간을 계산하거나, 시간을 계산후 또다른 계산을 통해 결과값을 얻고자 한다면,

시간을 분, 초, 시간등의 통일된 규칙을 갖고, 일반 숫자로 변경해 주셔야 하는것!! 기억해 두시면 좋겠습니다.

오늘 내용도 많은분들께 도움이 되셧으면 좋겠습니다.

좋은 하루 보내시길 바랄게요~^^!

댓글