책 내용 질문하기
SUMPRODUCT, ISNUMBER, FIND 함수식
도서
2015 시나공 사무자동화 산업기사 실기 기출문제집(eBook전용)
페이지
338
조회수
103
작성일
2018-11-07
작성자
탈퇴*원
첨부파일

실기 기출 09 엑셀 1번 문제 8번 풀이에서

"평가가 '최우수'이거나 '우수'인 유지비의 합계"를 구할 때

=SUMPRODUCT(ISNUMBER(FIND("우수",$L$4:$L$23))*1,K4:K23)

에서 *1을 입력하지 않으면 값이 나오지 않는데

*1을 해주어야 하는 이유는 무엇인가요?

답변
2018-11-08 09:27:31

안녕하세요. 길벗 수험서 운영팀입니다.

FIND(찾을 텍스트, 문자열, 시작 위치) 함수는 찾을 텍스트를 문자열에서 찾아 시작 위치를 반환하는 함수입니다.
'최우수'에는 '우수'가 포함되어 있기 때문에 '우수'를 사용하면 '우수(1)', '최우수(2)'를 모두 찾습니다.


그렇기 때문에
=sumproduct(isnumber(find("우수",범위)*1 ,범위))

식을 작성하면 '최우수'와 '우수'를 모두 찾습니다.

만약
=sumproduct(isnumber(find(우수,범위)+sumproduct(isnumber(find(최우수,범위),범위)로 수식을 작성하면
결과적으로 '우수+최우수+최우수'가 되므로 '최우수'를 2번 더하므로 올바른 값이 나오지 않습니다.

ISNUMBER 함수는 단순히 숫자면 TRUE, 숫자가 아니면 FALSE를 표시하는 함수이기 때문에 1을 곱하여 ‘TRUE’나 ‘FALSE’로 표시된 값을 1이나 0으로 변경해 줘야 합니다. 즉, TRUE는 1, FALSE는 0으로 취급하므로 1을 곱해서 TRUE*1=1, FALSE*1=0으로 표시되게 해줘야 합니다.

문의한 ISNUMBER(FIND("우수",L5:L24))의 결과값은 TRUE나 FALSE로 표시됩니다. 그러므로 곱하기 1을 해주어 TRUE나 FALSE를 1이나 0으로 변경해 주어야 합니다.

참고로 다음과 같이
ISNUMBER(FIND("우리",$A$4:$A$23))+ISNUMBER(FIND("해피",$A$4:$A$23))의 경우
ISNUMBER(FIND("우리",$A$4:$A$23))의 결과는 TREU나 FALSE로,
ISNUMBER(FIND("해피",$A$4:$A$23))의 결과도 TRUE나 FALSE로 반환됩니다.
이를 더해주게(+)게 되면 결과는 1이나 0, 즉 TRUE+TRUE=1, TRUE+FALSE=0, FALSE+FALSE=0으로 값이 반환됩니다.
그러므로 1을 곱해줘도 곱해주지 않아도 됩니다.

이해하기가 어렵다면 ISNUMBER가 한번 사용된다면 *1을, 두번 사용된다면 *1을 사용하지 않는다고 생각하시면 됩니다.

행복한 하루되세요.^^

  • *
    2018-11-08 09:27:31

    안녕하세요. 길벗 수험서 운영팀입니다.

    FIND(찾을 텍스트, 문자열, 시작 위치) 함수는 찾을 텍스트를 문자열에서 찾아 시작 위치를 반환하는 함수입니다.
    '최우수'에는 '우수'가 포함되어 있기 때문에 '우수'를 사용하면 '우수(1)', '최우수(2)'를 모두 찾습니다.


    그렇기 때문에
    =sumproduct(isnumber(find("우수",범위)*1 ,범위))

    식을 작성하면 '최우수'와 '우수'를 모두 찾습니다.

    만약
    =sumproduct(isnumber(find(우수,범위)+sumproduct(isnumber(find(최우수,범위),범위)로 수식을 작성하면
    결과적으로 '우수+최우수+최우수'가 되므로 '최우수'를 2번 더하므로 올바른 값이 나오지 않습니다.

    ISNUMBER 함수는 단순히 숫자면 TRUE, 숫자가 아니면 FALSE를 표시하는 함수이기 때문에 1을 곱하여 ‘TRUE’나 ‘FALSE’로 표시된 값을 1이나 0으로 변경해 줘야 합니다. 즉, TRUE는 1, FALSE는 0으로 취급하므로 1을 곱해서 TRUE*1=1, FALSE*1=0으로 표시되게 해줘야 합니다.

    문의한 ISNUMBER(FIND("우수",L5:L24))의 결과값은 TRUE나 FALSE로 표시됩니다. 그러므로 곱하기 1을 해주어 TRUE나 FALSE를 1이나 0으로 변경해 주어야 합니다.

    참고로 다음과 같이
    ISNUMBER(FIND("우리",$A$4:$A$23))+ISNUMBER(FIND("해피",$A$4:$A$23))의 경우
    ISNUMBER(FIND("우리",$A$4:$A$23))의 결과는 TREU나 FALSE로,
    ISNUMBER(FIND("해피",$A$4:$A$23))의 결과도 TRUE나 FALSE로 반환됩니다.
    이를 더해주게(+)게 되면 결과는 1이나 0, 즉 TRUE+TRUE=1, TRUE+FALSE=0, FALSE+FALSE=0으로 값이 반환됩니다.
    그러므로 1을 곱해줘도 곱해주지 않아도 됩니다.

    이해하기가 어렵다면 ISNUMBER가 한번 사용된다면 *1을, 두번 사용된다면 *1을 사용하지 않는다고 생각하시면 됩니다.

    행복한 하루되세요.^^

· 5MB 이하의 zip, 문서, 이미지 파일만 가능합니다.
· 폭언, 욕설, 비방 등은 관리자에 의해 경고없이 삭제됩니다.