본문 바로가기

업무 프로그램/MS 엑셀

엑셀 셀에 입력된 날짜에 따라 반기, 분기 자동 입력하기(IF, IFS, VALUE, TEXT, MONTH, ROUNDUP, CHOOSE)

목차

    자주 사용하는 양식이나 보고서에는 자동으로 입력되는 수식을 만들어 놓으면 실수도 줄이고 작업 시간도 줄어들게 됩니다.

    분기를 구하는 방법은 한 가지만 있는 것이 아닙니다.

    ROUNDUP을 이용하는 방법과 CHOOSE를 이용한 방법이 있습니다.

    물론 가장 범용적으로 많은 일을 할 수 있는 IF로도 가능합니다.

    엑셀에서 IF, IFS, IFERROR의 사용법은 아래 링크에서 확인 가능합니다.

    IF 중첩을 간단하게 해주는 엑셀 IFS 사용법(IF에 조건 여러개), 오류처리 방법(IFERROR)
     

    IF 중첩을 간단하게 해주는 엑셀 IFS 사용법(IF에 조건 여러개), 오류처리 방법(IFERROR)

    IF를 중첩해서 사용하는 경우는 AND 조건이나 OR 조건을 처리하기 위해서도 있지만 특정 범위를 묶어서 처리하고자 할 때도 사용합니다. AND, OR 조건을 처리하기 위한 엑셀에서의 IF사용법은 아래

    dolpali.tistory.com

    여기서는 IF의 사용법은 생략하고 날짜에 따라서 반기, 분기를 나누는 방법을 알아보겠습니다.

     


    엑셀 IF를 이용한 반기, 분기 자동 입력

    엑셀 IF를 이용한 반기, 분기 자동 입력 예제

    반기를 입력하는 방법입니다.

    =IF(VALUE(TEXT(C3,"MM"))<7,"상반기","하반기")

     

    VALUE와 TEXT가 처음 나왔으니 간단히 사용법을 설명드리겠습니다.

     

    VALUE(text)

    인자로 입력된 text를 숫자로 바꾸어 줍니다. 어차피 우리가 볼 때에는 똑같지만 IF에서 비교할 때에는 문자 7과 숫자 7은 다른 것으로 인식하기 때문에 사용합니다.

     

    TEXT(서식을 지정할 값, "적용할 서식 코드")

    서식 코드를 사용하여 숫자 표시방법을 변경해 줍니다. 숫자뿐만 아니라 다양한 서식을 적용시킬 수 있습니다.

    너무나 다양한 적용 방식이 있어 따로 다루어 보겠습니다.

     

    이제 다시 수식에 대해 설명드리겠습니다.

    TEXT(C3,"MM")은 C3에 있는 값(2022-01-01)에서 월(01)만 잘라서 가져오겠다는 뜻입니다.

    VALUE는 위에서 가져온 01을 숫자취급 하겠다는 뜻입니다.

    그 후에 7과 비교하여 7보다 작으면 상반기, 아니면 하반기를 표시하도록 했습니다.

    만약 VALUE가 없다면 여기서 생각지 않은 결과가 나올 것입니다.

     

    분기를 자동으로 입력하는 방법입니다.

    =IFS(VALUE(TEXT(C3,"MM"))<4,"1분기",VALUE(TEXT(C3,"MM"))<7,"2분기",VALUE(TEXT(C3,"MM"))<10,"3분기",TRUE,"4분기")

     

    조건이 많으므로 IF보다는 IFS를 사용하여 간단히 했습니다.

    IFS에 대한 설명은 처음에 소개한 포스팅에 있으니 생략하겠습니다.

    복잡해 보이지만 원리는 위에서 설명한 반기와 같습니다.

    단지 분기는 3개월씩 나누어지므로 7과 비교한 것이 아니라 <4, <7, <10으로 한 점이 다릅니다.

     


    ROUNDUP을 이용한 분기 자동입력 방법

    ROUNDUP을 이용한 분기 자동입력 방법 예시
    ROUNDUP을 이용한 분기 자동입력 방법 예시

    ROUNDUP을 이용한 분기 자동 입력 방법입니다.

    =ROUNDUP(MONTH(C3)/3,0)&"분기"

     

    MONTH와 ROUNDUP이 새로 나왔으니 간단히 알아보겠습니다.

     

    MONTH(serial_number)

    serial_number란 필수요소로 월을 구할 날짜입니다.

    위에서 봤던 TEXT(C3,"MM")와 같은 역할입니다.

     

    ROUNDUP(number, num_digits)

    0에서 먼 방향으로 수를 올림을 하는 함수입니다.

     

    number: 필수 요소이며 올림 하고자 하는 실수 값입니다.
    num_digits: 올림 할 자릿수입니다. 양수는 소수점 아래, 음수는 소수점 위 몇 번째 자리까지 인지 뜻합니다. 정수로 올림 할 때는 0을 입력합니다.

     

    MONTH(C3)에서 월을 가져오고 3으로 나누어 줍니다.

    ROUNDUP을 이용한 분기 자동입력 방법 중간 과정
    ROUNDUP을 이용한 분기 자동입력 방법 중간 과정

    G열을 보면 알 수 있듯이 3개월마다 1씩 증가하는 모습을 보여주고 있습니다.

    여기에서 ROUNDUP을 사용하면 0.33은 1, 0.67은 1, 1은 1로 올림이 되게 됩니다.

    거기에 문자열을 붙일 때 사용하는 "&"과 분기를 결합해주면 F열과 같이 나오게 되는 것입니다.


    CHOOSE를 이용한 분기 자동입력 방법

    CHOOSE를 이용한 분기 자동입력 방법 예시
    CHOOSE를 이용한 분기 자동입력 방법 예시

    CHOOSE를 이용한 분기 자동입력 방법입니다.

    =CHOOSE(TEXT(C3,"MM"),1,1,1,2,2,2,3,3,3,4,4,4)&"분기"

     

    TEXT에 대한 내용은 위에 설명되어 있으니 생략하고 CHOOSE에 대해 설명하겠습니다.

     

    CHOOSE(index_num, value1, [value2], ...)
    index_num: 필수요소입니다. 인수가 되는 값을 지정하며 1~254 사이의 숫자나 그에 해당하는 수식이 입력됩니다.
    value1: 필수입니다. index_num이 가리키는 value의 값이 출력됩니다.

     

    CHOOSE에서 value에 1,1,1,2,2,2,3,3,3,4,4,4이 입력되어 있으니 index_num에 따라 [1,2,3 -> 1], [4,5,6 -> 2],[7,8,9 ->3],[10,11,12 ->4]로 나올 것입니다.

    이는 우리가 원하는 분기와 같습니다.