책 내용 질문하기
엑셀 기본모의고사1 판매부의 팀별 기본급 합계문제
도서
2018 시나공 컴퓨터활용능력 1급 실기(엑셀, 액세스 2010 사용자용)
페이지
314
조회수
59
작성일
2018-01-30
작성자
탈퇴*원
첨부파일

SUM(IF((RIGHT($A$20:$A$39,2)=E10) * ??IFERROR(?FIND("판매",$A$20:$A$39)?>=1,? FALSE),$H$20:$H$39)

?이 식 설명을 읽어봐도 이해가 잘 안갑니다...ㅠㅠ

조건2 부분에서 IFERROR(인수, ,오류시 표시할 값(=FALSE))

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

이건가요?? FIND함수는 FIND(찾을 텍스트, 문자열, 시작위치) 라고 하는데 >=1 이건 왜 있는건가요??

답변
2018-01-30 19:21:55

먼저 IFERROR 하고 FIND가 가지는 의미를 알아볼게요.

IFEEROR(값 또는 수식, 값 또는 수식 또는 문자열)

이런 식으로 채울 수가 있습니다.

첫번째인수를 확인해서 에러가나거나 FALSE값을 가지게 되면

두번쨰 인수의 값을 표시하게 됩니다.

많은 분들이 오해하시는부분은 IFERROR는 오류가나면 뒤에 값을 표시한다고 생각합니다.

맞는 말이지만 그 말은 절반만 맞는 말입니다.

IFERROR는 수식이 거짓일 경우에도 뒤에 값을 표시합니다.

FIND함수는

FIND(찾을값,찾을곳,시작위치)

이런식으로 인수를 받게되는데요.

FIND함수는 시작위치를 생략할수 있다는 특징을 가지고 있습니다.

VLOOKUP에서 옵션을 설정하지 않으면 자동으로 TRUE값이 설정되는 것처럼요.

FIND함수의 시작위치를 생략할 시에는 기본적으로 첫번쨰부터 문자를 찾게 됩니다.

책에서는 처음부터 찾을 것이기 때문에 시작위치를 편의상 넣지 않은 것입니다.

책에서 IFERROR문을 보자면

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

이런식으로 작성되어있죠?

IFERROR의 첫번쨰 인수를 보자면

FIND("판매",$A$20:$A$39)>=1 까지 일겁니다.

즉 값이아닌 수식으로 인수를 받게 된거죠.

FIND는 판매라는 값을 찾게되면 1을 반환할겁니다.

왜냐하면 판매는 제일 앞쪽에 써져있기 때문이죠

그러면 FIND함수가 1을 반환하게된다면?

수식은

IFERROR(1>=1,FALSE)

이렇게 다시 볼수도 있습니다.

수식은 TRUE값을 반환하므로 배열수식에서의 조건은 참으로 반영되게됩니다.

만약 찾지 못했다면 FIND는 0을 반환하게 되겠죠.

IFERROR(0>=1,FALSE)

수식은 거짓이 되게됩니다.

그러면 IFERROR함수는 FALSE를 반환하게되고 수식은 전부

*(AND)로 이루어져있기때문에 그 값은 제외하게 됩니다.

그리고 판매는 제일 앞쪽에 있기떄문에

FIND("판매",$A$20:$A$39)>=1 에서

FIND("판매",$A$20:$A$39)=1 로 바꿔주어도 됩니다.

너무 말이 길어졌네요.

아직 1급도 따지못한 부족한 지식이지만

도움이 되었기를 바랍니다.

  • *
    2018-01-30 19:21:55

    먼저 IFERROR 하고 FIND가 가지는 의미를 알아볼게요.

    IFEEROR(값 또는 수식, 값 또는 수식 또는 문자열)

    이런 식으로 채울 수가 있습니다.

    첫번째인수를 확인해서 에러가나거나 FALSE값을 가지게 되면

    두번쨰 인수의 값을 표시하게 됩니다.

    많은 분들이 오해하시는부분은 IFERROR는 오류가나면 뒤에 값을 표시한다고 생각합니다.

    맞는 말이지만 그 말은 절반만 맞는 말입니다.

    IFERROR는 수식이 거짓일 경우에도 뒤에 값을 표시합니다.

    FIND함수는

    FIND(찾을값,찾을곳,시작위치)

    이런식으로 인수를 받게되는데요.

    FIND함수는 시작위치를 생략할수 있다는 특징을 가지고 있습니다.

    VLOOKUP에서 옵션을 설정하지 않으면 자동으로 TRUE값이 설정되는 것처럼요.

    FIND함수의 시작위치를 생략할 시에는 기본적으로 첫번쨰부터 문자를 찾게 됩니다.

    책에서는 처음부터 찾을 것이기 때문에 시작위치를 편의상 넣지 않은 것입니다.

    책에서 IFERROR문을 보자면

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

    이런식으로 작성되어있죠?

    IFERROR의 첫번쨰 인수를 보자면

    FIND("판매",$A$20:$A$39)>=1 까지 일겁니다.

    즉 값이아닌 수식으로 인수를 받게 된거죠.

    FIND는 판매라는 값을 찾게되면 1을 반환할겁니다.

    왜냐하면 판매는 제일 앞쪽에 써져있기 때문이죠

    그러면 FIND함수가 1을 반환하게된다면?

    수식은

    IFERROR(1>=1,FALSE)

    이렇게 다시 볼수도 있습니다.

    수식은 TRUE값을 반환하므로 배열수식에서의 조건은 참으로 반영되게됩니다.

    만약 찾지 못했다면 FIND는 0을 반환하게 되겠죠.

    IFERROR(0>=1,FALSE)

    수식은 거짓이 되게됩니다.

    그러면 IFERROR함수는 FALSE를 반환하게되고 수식은 전부

    *(AND)로 이루어져있기때문에 그 값은 제외하게 됩니다.

    그리고 판매는 제일 앞쪽에 있기떄문에

    FIND("판매",$A$20:$A$39)>=1 에서

    FIND("판매",$A$20:$A$39)=1 로 바꿔주어도 됩니다.

    너무 말이 길어졌네요.

    아직 1급도 따지못한 부족한 지식이지만

    도움이 되었기를 바랍니다.

  • *
    2018-02-03 13:49:02

    iferror 로 오류를 확인 하는 것이므로 이것이 없이는 정확한 결과가 나오지 않습니다.

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

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

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

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

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

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

    >=1 을 생략해도 정확한 결과가 나온다면 생략하셔도 됩니다.

    좋은 하루 되세요.

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