책 내용 질문하기
엑셀함수
도서
2018 시나공 컴퓨터활용능력 1급 실기(엑셀, 액세스 2010 사용자용)
페이지
조회수
55
작성일
2018-11-26
작성자
탈퇴*원
첨부파일
문1) 1회기본모의고사(307p)4번문제 if,sum,right,iferror,find함수 이용하여 표5에서 부서에 "판매"사 포함된 사원에 대해 팀별 기본급의 합계 구하기 식중에서 왜 ifferror(find("판매",$A$20:$A$39)>=1,false) 로 식을 써야하는지 문2) 5회 기본모의고사 엑셀 함수 4번 식에서 match(left(a10,1),{다,나},-1)+1에서 왜 {다,나}로 찾을 범위로 주는지 혹시 표2 코드표에서 다와기타(다 이외 나머지(나,기타,가))때문에 내림차순으로 하는건가요 식에서 내림차순으로 한다는 말은 없고 match 옵션에 -1(내림차순)하는이유? 그리고 범위를{}로 주는 이유? 그리고 마지막에 +1을 한이유가 뭔가요? 이런문제나오면 틀릴수 밖에 없는 고난도 문제같네요.....
답변
2018-11-27 13:13:50

안녕하세요.

문1)
iferror(find("판매",$A$20:$A$39)>=1,false)

find 함수는 지정된 범위에서 "판매"가 있는지를 찾아,


있다면 "판매"가 있는 위치를 결과값으로 반환합니다.


find 함수의 결과값이 1 이상이라는 것은 지정된 범위에 "판매"가 있다는 의미이므로


find 함수의 결과를 1 이상인지를 비교하는 것입니다.


문2)

HLOOKUP(찾을 값, 범위, 행번호, 옵션)

:범위의 첫 번째 행에서 찾을값과 같은 데이터를 찾은 후 찾을 값이 있는 열에서 지정된 행 번호 위치에 있는 데이터를 반환합니다.

:찾을 값 D10

:범위 F2:I4

:행번호 : MATCH(LEFT(A10,1), {"다","나"},-1)+1

---

MATCH(찾을 값, 범위, 옵션)
: 범위에서 옵션을 적용하여 찾을 값과 같은 데이터를 찾아 그 위치에 대한 일련번호를 반환하는 함수입니다.

옵션 -1
: 옵션을 -1로 지정하면 찾을 값이 없을 경우 '찾을 값' 보다 큰 값 중에서 가장 작은 값을 찾습니다. 이때 범위는 반드시 내림차순으로 정렬되어야 합니다.

{"다", "나"}
: [표1]의 '상품코드'의 왼쪽 1글자는 "가, 나, 다" 중 하나인데 [표2] 코드표의 코드는 "다, 기타"입니다. 즉, "다"와 그 외의 코드로 구분하라는 의미이지요.

이런 경우 "다"만 정확히 찾고 나머지는 모두 "기타"로 처리해야 하는데 "다, 나, 기타, 가"로 내림차순 정렬되므로 이 방법을 이용할 수 없습니다.([표2]의 순서가 "다, 기타" 이므로 내림차순으로 판단한 것입니다.)

왜냐면, 내림차순이므로 '옵션'으로 -1을 사용해야하는데 "가"는 "기타"보다 작아 기타로 처리되지만, "나"는 "기타"보다 크므로 "다"로 처리됩니다.

이런 경우, 별도로 찾을 데이터가 있는 범위를 만들어 주면 됩니다.
가장 큰 "다"와 두 번째 큰 항목인 "나"를 두 번째로 하여 범위를 만들면 "다"를 제외한 모든 과목은 "나"로 처리됩니다. "나"가 "기타"역할을 하는 것이지요.

-----

MATCH(LEFT(A10,1), {"다","나"},-1) +1 에서 +1 을 하는 이유는

Hlookup 에서 사용한 범위는 F2:I4로 2~4 까지 3행이 범위로 지정되어 있는데
Match 에서 사용한 범위는 다, 기타로 2개이기 때문입니다.

그래야 다와 기타에 해당하는 값을 표시할 수 있습니다.

------

이렇게 MATCH 함수로 HLOOKUP의 행번호를 구하는 것입니다.

-----

문제가 상품코드와 판매수량에 따른 판매단가를 계산하는 것이므로

[표2] 코드표 에서 2행의 판매수량과 (다, 기타)의 상품 코드를 이용하는 것입니다.

HLOOKUP 함수에서 [D10]은 판매수량을 찾기위해 표시된 것입니다.

HLOOKUP(D10, F2:I4, MATCH()에서 반환된 행번호)은

판매수량[D10]을 범위 [F2:I4]의 첫 행인 [F2:I2]에서 찾아, 반환된 행번호 위치에 있는 데이터를 반환하게 됩니다.

좋은 하루 보내세요.

  • *
    2018-11-27 13:13:50

    안녕하세요.

    문1)
    iferror(find("판매",$A$20:$A$39)>=1,false)

    find 함수는 지정된 범위에서 "판매"가 있는지를 찾아,


    있다면 "판매"가 있는 위치를 결과값으로 반환합니다.


    find 함수의 결과값이 1 이상이라는 것은 지정된 범위에 "판매"가 있다는 의미이므로


    find 함수의 결과를 1 이상인지를 비교하는 것입니다.


    문2)

    HLOOKUP(찾을 값, 범위, 행번호, 옵션)

    :범위의 첫 번째 행에서 찾을값과 같은 데이터를 찾은 후 찾을 값이 있는 열에서 지정된 행 번호 위치에 있는 데이터를 반환합니다.

    :찾을 값 D10

    :범위 F2:I4

    :행번호 : MATCH(LEFT(A10,1), {"다","나"},-1)+1

    ---

    MATCH(찾을 값, 범위, 옵션)
    : 범위에서 옵션을 적용하여 찾을 값과 같은 데이터를 찾아 그 위치에 대한 일련번호를 반환하는 함수입니다.

    옵션 -1
    : 옵션을 -1로 지정하면 찾을 값이 없을 경우 '찾을 값' 보다 큰 값 중에서 가장 작은 값을 찾습니다. 이때 범위는 반드시 내림차순으로 정렬되어야 합니다.

    {"다", "나"}
    : [표1]의 '상품코드'의 왼쪽 1글자는 "가, 나, 다" 중 하나인데 [표2] 코드표의 코드는 "다, 기타"입니다. 즉, "다"와 그 외의 코드로 구분하라는 의미이지요.

    이런 경우 "다"만 정확히 찾고 나머지는 모두 "기타"로 처리해야 하는데 "다, 나, 기타, 가"로 내림차순 정렬되므로 이 방법을 이용할 수 없습니다.([표2]의 순서가 "다, 기타" 이므로 내림차순으로 판단한 것입니다.)

    왜냐면, 내림차순이므로 '옵션'으로 -1을 사용해야하는데 "가"는 "기타"보다 작아 기타로 처리되지만, "나"는 "기타"보다 크므로 "다"로 처리됩니다.

    이런 경우, 별도로 찾을 데이터가 있는 범위를 만들어 주면 됩니다.
    가장 큰 "다"와 두 번째 큰 항목인 "나"를 두 번째로 하여 범위를 만들면 "다"를 제외한 모든 과목은 "나"로 처리됩니다. "나"가 "기타"역할을 하는 것이지요.

    -----

    MATCH(LEFT(A10,1), {"다","나"},-1) +1 에서 +1 을 하는 이유는

    Hlookup 에서 사용한 범위는 F2:I4로 2~4 까지 3행이 범위로 지정되어 있는데
    Match 에서 사용한 범위는 다, 기타로 2개이기 때문입니다.

    그래야 다와 기타에 해당하는 값을 표시할 수 있습니다.

    ------

    이렇게 MATCH 함수로 HLOOKUP의 행번호를 구하는 것입니다.

    -----

    문제가 상품코드와 판매수량에 따른 판매단가를 계산하는 것이므로

    [표2] 코드표 에서 2행의 판매수량과 (다, 기타)의 상품 코드를 이용하는 것입니다.

    HLOOKUP 함수에서 [D10]은 판매수량을 찾기위해 표시된 것입니다.

    HLOOKUP(D10, F2:I4, MATCH()에서 반환된 행번호)은

    판매수량[D10]을 범위 [F2:I4]의 첫 행인 [F2:I2]에서 찾아, 반환된 행번호 위치에 있는 데이터를 반환하게 됩니다.

    좋은 하루 보내세요.

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