본문 바로가기
본문 영역

엑셀함수 제5탄 IS함수 CHOOSE함수

이 글 목차 자세히 보기

    엑셀 함수 IS함수 CHOOSE함수

    여기서는 값 또는 참도 유형을 검사할 때 사용하는 9개의 함수를 설명합니다.

     

    IS함수

    IS함수라고 하는 이러한 함수들은 값의 유형을 검사하고 그 결과에 따라 TRUE 또는 FALSE를 반환합니다. 예를 들어 ISBLANK 함수는 값이 빈 셀을 참조하면 TRUE를, 그렇지 않으면 FALSE를 반환합니다.

     

    구문

    ISBLANK(value)
    ISERR(value)
    ISERROR(value)
    ISLOGICAL(value)
    ISNA(value)
    ISNUMBER(value)
    ISREF(value)
    ISTEXT(value)

    ● value의 값으로는 공백( 빈 셀), 오류 값, 논리 값, 텍스트, 숫자, 참조값 또는 이러한 항목을 참조하는 이름을 사용할 수 있습니다.

    IS함수

    주의

    ● IS 함수의 값 인수는 반환되지 않습니다. 예를 들어 숫자를 지정해야 하는 대부분의 다른 함수에서는 텍스트 값 "19"가 숫자 19로 변환되지만, 수식 ISNUMBER("19")에서는 텍스트 값 "19"가 숫자로 변환되지 않으므로 ISNUMBER함수는 FALSE를 반환하게 됩니다.
    ● IS 함수는 수식에서 계산 결과를 검사할 때 유용합니다.


    IF 함수와 함께 사용하면 수식에서 오류를 쉽게 찾을 수 있습니다.

     

    예제

    IS함수 예제

     

    응용

    아래의 표에서 수량 항목의 값 중 숫자인 것은 동일한 품번의 수량의 합으로 나타내고 숫자가 아닌 것은 "오류"라고 나타내 보시기 바랍니다.

    IS함수 응용

    D98의 수식 = IF( ISNUMBER(C98), SUMIF($B$98:$B$116, B98, $C$98:$C$116), "오류")는 IF 함수의 조건 부분인  ISNUMBER(C98)와 조건이 TRUE 일 경우 반환되는 SUMIF($B$98:$B$116, B98, $C$98:$C$116) 그리고 조거니 FALSE일 경우 반환되는 "오류"로 나누어 생각할 수 있습니다.


    첫 번째로 조건 부분을 보면 C98의 값이 "V"이므로 ISNUMBER(C98)는 TRUE를 반환하고 따라서 이번에는 SUMIF 함수를 수행하므로 품번 "85 TV1317-2"의 모든 수량을 합해서 그 값을 반환합니다.

    CHOOSE 함수

    index_num을 사용하여 인수값 목록에서 값을 반환합니다.

    구문

    CHOOSE 함수

    ●index_num은 1과 29 사이의 숫자이거나, 1과 29 사이의 숫자가 들어 있는 셀에 대한 참조 또는 수식이어야 합니다.
    ● index_num이 1이면 value1을, 2이면 value2 등의 방식으로 계속해서 반환합니다.
    ● index_num이 1보다 작거나 목록의 마지막 값의 수보다 크면 #VALUE! 오류 값이 반환됩니다.
    ● value1, value2, .. CHOOSE 함수가 index_num에 따라 값이나 작업을 선택할 때 사용하는 인수입니다. 1개부터 29개까지 지정할 수 있습니다. 인수는 숫자, 셀 참조 영역, 정의된 이름, 수식, 매크로 함수, 텍스트 등이 될 수 있습니다.

     

    주의

    ● index_num이 배열이면 CHOOSE 함수가 계산될 때 모든 value가 계산됩니다.
    ● CHOOSE 함수에서 value 인수는 단일 값일 수도 있고 참조 영역일 수도 있습니다.

     

    예제

    CHOOSE 함수 예제

     

    CHOOSE 함수 예제 2

    응용

    각 품목의 LEVEL을 기입합니다.

    CHOOSE 함수 응용

    응용

    각 품목의 LEVEL 을 기입하시기 바랍니다. 규칙을 참고하시기 바랍니다.

     

    규칙

    1. LCN으로 단품인지 조립 체인지 먼저 구별합니다. 단품의 경우는 뒤의 세자리가 숫자로 구성됩니다. 그 외 품목은 모두 조립체입니다.
    2. 조립체의 경우에는 LCN의 문자열 길이로 LEVEL이 식별 가능합니다. 예를 들어 LCN이 "A"일 경우 문자열 길이가 1이므로 "A" LEVEL입니다. LCN이 "A1A"일 경우 길이가 3이므로 "A"LEVEL입니다. 단, LEVEL CODE에 알파벳 "0", "I"는 쓰지 않습니다.
    3. 단품의 경우에는 실제의 문자열보다 2자리 적게 생각하시면 됩니다. 예를 들어 LCN이 "A1 AA001"일 경우 문자열 길이가 7자리로 LEVEL이 "G"가 되어야겠지만 실제 LEVEL은 문자열이 5자리의 경우와 같이 "E"가 됩니다.

    CHOOSE 함수 규칙

    D18의 수식 = CHOOSE(IF(ISNUMBER(VALUE(RIGHT(B18,3))), LENB(B18)-2, LENB(B18)), "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z")를 살펴보면 CHOOSE 함수 이외에도 IF, ISNUMBER, VALUE, RIGHT, LENB 함수 등은 중첩해서 사용하므로 상당히 복잡해 보일 것입니다. 하지만 이것을 하나씩만 놓고 보면 그렇게 어렵지 않다는 것을 알 수 있을 것입니다.

     

    먼저 조건을 다시 한번 보시기 바랍니다.
     1.LCN으로 단품인지 조립 체인지 먼저 구별합니다.
    단품의 경우는 뒤의 세 자리가 숫자로 구성됩니다. 그 외 품목은 모두 조립체입니다. 1번 조건을 보면 먼저 LCN의 뒤 3자리가 숫자인지를 구분해야 합니다.


    LCN의 뒤 3자리를 가져오는 함수가 RIGHT(B18,3)이고 VALUE함수는 텍스트를 숫자로 변환시키는 함수입니다. 문자열에 속해있던 숫자를 참조할 경우 형식은 여전히 텍스트로 되어 있기 때문에 이를 숫자형으로 바꾸기 위해 VALUE 함수가 필요한 것입니다.

     

    ISNUMBER 함수는 VALUE 함수로 변환된 어떤 값이 숫자인지 판별하는 함수입니다. 여기까지 이해가 되셨으면 아래 표의 함수들을 자세히 한번 살펴보시기 바랍니다. 함수 하나씩을 풀어서 나열하였습니다.

    CHOOSE함수 규칙

    위의 표에서 VALUE 함수 항목을 보시면 #VALUE! 에러가 발생했는데 이는 VALUE 함수에 문자를 넣었기 때문입니다. 오류 값 또한 숫자는 아니므로 상관은 없습니다. 여기까지 조건 1을 만족시키기 위해서 한 작업이었습니다.
    다시 한번 설명하면 LCN 뒤 3자리가 숫자이면 단품이므로 ISNUMBER 함수 항목에 TRUE인 품목들이 단품이겠습니다. 당연히 나머지들은 조립체입니다.

     

    다음은 2, 3번째 조건을 한번 살펴보겠습니다.

    2. 조립체의 경우에는 LCN의 문자열 길이로 LEVEL이 식별 가능합니다.
    예를 들어 LCN이 "A"일 경우 문자열 길이가 1이므로 "A" LEVEL입니다. LCN이 "A1A"일 경우 문자열 길이가 3이므로 "C" LEVEL입니다. 단, LEVEL CODE에 알파벳"0", "I"는 쓰지 않습니다.

     

    3. 단품의 경우에는 실제의 문자열보다 2자리 적게 생각하시면 됩니다.

    예를 들어 LCN이"A1 AA001"일 경우 문자열 길이가 7자리로 LEVEL이 "G"가 되어야겠지만 실제 LEVEL 은 문자열이 5자리의 경우와 같이 "E"가 됩니다. 이미 조립체와 단품은 구별된 상태이므로 이제 남은 일은 조립체일 때의 LCN의 문자 길이와 단품일 때의 문자 길이만 구하면 되겠습니까? 문자 길이를 구하는 함수는 LENB함수입니다. 참고로 LEN함수와 동일하나 LEN함수는 문자열의 문자수를 구하지만 LENB함수는 문자열의 바이트수를 구할 수 있습니다.

    단품경우

    조립체일 경우 LCN 문자열에서의 문자 길이를 그대로 사용하면 됩니다. 이것을 수식으로 표현하면 =LENB("LCN이 있는 셀 주소")가 되겠습니다. 단품일 경우 LCN 문자열의 길이에서 2자리만큼 빼면 됩니다. 이것 또한 수식으로 표시하면 =LENB("LCN이 있는 셀 주소")-2 가 됩니다. 

     

    조건 2와 3을 다시 정리해보면 조립체 즉 ISNUMBER의 결과가 FALSE일 경우 LENB("LCN이 있는 셀 주소")이고 TRUE일 경우 LENB("LCN이 있는 셀 주소")-2 가 되면 됩니다. 이것도 수식으로 표현하면 IF(ISNUMBER 결과, LENB(LCN이 있는 셀 주소)-2, LENB(LCN이 있는 셀 주소))가 됩니다. 여기까지 이해가 되셨으면 아래의 수식을 한번 살펴보시기 바랍니다.

     

    CHOOSE함수 .

     

    이제 마지막으로 CHOOSE 함수를 사용하면 결과가 처음 표에 보셨던 것과 같이 나올 것입니다. 지금까지 사용한 함수를 한 번에 중첩해서 쓰면 D18의 함수가 되겠습니까? 이렇게 길게 설명한 이유는 여러 가지 조건에 함수가 여러 개 쓰일 경우 하나씩 먼저 생각해 보면 쉽게 답이 나올 수 있을 것 같아서 장황하게 설명을 한번 해보았습니다. 설명이 너무 길어 오히려 이해가 더 안 되면 어떡하나 하는 생각도 듭니다.

    📝 댓글

    TOP