책 내용 질문하기
IFERROR 함수 질문있습니다.
도서
[2015] 컴퓨터활용능력 1급 실기
페이지
278
조회수
349
작성일
2015-11-19
작성자
첨부파일

[2015] 컴퓨터활용능력 1급 실기 1권 엑셀편

278쪽 문제2의 4번문제 질문있는데요.

[표5]에서 부서에 "판매"가 포함된 사원에 대해 팀별 기본급의 합계를 계산하여 [표4]의

[F10:F12] 영역에 표시하시오.

저는 답을 이렇게 했었습니다.

=SUM ( IF ( IFERROR ( ( RIGHT ( $A$20:$A$39,2 ) = $E10 ),FALSE ) *

FIND ( "판매",$A$20:$A$39 ) =1 , $H$20:$H$39 ) )

책의 답에는 이렇게 나왔었구요.

=SUM ( IF ( ( RIGHT ( $A$20:$A$39,2 ) =$E10 ) *

IFERROR ( FIND ( "판매",$A$20:$A$39 ) >=1 , FALSE ) , $H$20:$H$39 ) )

질문 1 : IFERROR함수로 RIGHT함수를 감싸도 상관 없지 않나요?

RIGHT ( $A$20:$A$39,2 ) = $E10함수도 True값이 나오니까

IFERROR(인수값 자리에 True 나오게 하고, 여기에 false를 적었어요)

결국은 원하는 값이 안나왔습니다.

그리고 책의 답처럼 IFERROR자리를 바꿔보니 답이 나오던데

제가 적었던 풀이가 틀린 이유가 무엇인가요?

질문 2 : FIND함수 끝자리에 ">=1"이 책의 답으로 나와있는데

저는 그냥 "=1"로 했어요.

결과적으로 답은 똑같이 나오던데, 꼭 책에 나온 ">=1" 이것으로 풀이를 해야

답으로 인정되나요?

답변
2015-11-23 15:26:02

find 함수를 이용하여 "정보"를 찾아 그 위치를 표시하는데,

해당 셀에 "판매"가 있다면 그 시작 위치가 결과값으로 나왔겠죠?

그 위치값으로 가장 작은 값은 "판매"가 첫번째로 나오는 1이므로 1보다 크거나 같다면 "정보"라는 글자가 있는 것이 됩니다.

그러므로 '>=1'을 해준 것입니다. 그런데 만약 "판매"라는 글자가 없을 때는 find 함수는 오류가 발생합니다.

그러므로 iferrorr 함수를 이용하여 오류가 발생하는지 체크를 하는 것입니다.

오류가 발생했다면 이것은 "판매"라는 글자가 없는 것이고, 이것은 조건을 만족하지 않은 것이므로 'false'를 넣는 것입니다.

if에러 에서 나온 값이 참인지 거짓인지를 확인 하여 참, 거짓을 반환하고 첫번째 조건인 right 에서 참인지 거짓인지 확인 하고

1*1 = 1

1*0 = 0

...

과 같은 값을 나타내고 참일때 반환할 값을 반환하여 값을 구하게 되는 것입니다.

iferrorr로 구해야 하는 값이 판매라는 글자가 있는지 없는지를 확인 해야 하는데 right 함수의 값으로 iferrorr 을 구했기 때문에 원하는

결과가 나오지 않은 것입니다.

좋은 하루 되세요.

  • *
    2015-11-23 15:26:02

    find 함수를 이용하여 "정보"를 찾아 그 위치를 표시하는데,

    해당 셀에 "판매"가 있다면 그 시작 위치가 결과값으로 나왔겠죠?

    그 위치값으로 가장 작은 값은 "판매"가 첫번째로 나오는 1이므로 1보다 크거나 같다면 "정보"라는 글자가 있는 것이 됩니다.

    그러므로 '>=1'을 해준 것입니다. 그런데 만약 "판매"라는 글자가 없을 때는 find 함수는 오류가 발생합니다.

    그러므로 iferrorr 함수를 이용하여 오류가 발생하는지 체크를 하는 것입니다.

    오류가 발생했다면 이것은 "판매"라는 글자가 없는 것이고, 이것은 조건을 만족하지 않은 것이므로 'false'를 넣는 것입니다.

    if에러 에서 나온 값이 참인지 거짓인지를 확인 하여 참, 거짓을 반환하고 첫번째 조건인 right 에서 참인지 거짓인지 확인 하고

    1*1 = 1

    1*0 = 0

    ...

    과 같은 값을 나타내고 참일때 반환할 값을 반환하여 값을 구하게 되는 것입니다.

    iferrorr로 구해야 하는 값이 판매라는 글자가 있는지 없는지를 확인 해야 하는데 right 함수의 값으로 iferrorr 을 구했기 때문에 원하는

    결과가 나오지 않은 것입니다.

    좋은 하루 되세요.

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