책 내용 질문하기
엑셀 질문입니다~
도서
[2011] 사무자동화산업기사 실기(엑셀ㆍ액세스ㆍ파워포인트 2007 사용자용)
페이지
40
조회수
119
작성일
2012-07-07
작성자
첨부파일

2편 실전 모의고사의 40페이지에서 질문입니다.

sumproduct 함수를 쓰던 중 isnumber의 용법에서 궁금함이 생겨 여쭤봅니다.

이 문제에서는 isnumber사용 후 1을 곱해주는데요, 수식 설명을 보면

트루는 1, 펄스는 0으로 취급되기때문에 1을 곱하여 1과 0으로 표시하기 위함이라고 나와있습니다.

그런데 다른 문제를 풀 때는 굳이 1을 안곱해줬던 것 같은데

유독 여기서만 이미 1과0으로 취급되는 isnumber함수에서 다시 1을 곱해주는데

그 이유가 궁금합니다.

혹시나 싶어 1을 곱하지 않고 해봤더니 역시 값은 제대로 표시되지 않고 0으로만 표시되더군요.

항상 자세한 답변에 감사드리며 질문 남깁니다~!

답변
2012-07-07 10:00:20

엑셀 안에 이런 표를 작성했다고 가정합시다.
품질 가격
우수 1
우수 1
우수 1
최우수 1
최우수 1
①=SUMPRODUCT(ISNUMBER(FIND("최우수",A2:A6))+ISNUMBER(FIND("우수",A2:A6)),B2:B6)
출력값 : 7
②=SUMPRODUCT(ISNUMBER(FIND("우수",A2:A6)),B2:B6)
출력값 : 0
③=SUMPRODUCT(ISNUMBER(FIND("우수",A2:A6))-ISNUMBER(FIND("최우수",A2:A6)),B2:B6)
출력값 : 3
④=SUMPRODUCT(ISNUMBER(FIND("우수",A2:A6))*1,B2:B6)
출력값 : 5
위의 식들을 보고서 이해할줄을 알아야합니다 1번의 식은 최우수와 우수 의 합을 구하는 식입니다.
최우수 안에도 우수라는 텍스트가 있으니 카운팅을 하겟죠?
ISNUMBER(FIND("최우수",A2:A6)= 2번 ISNUMBER(FIND("우수",A2:A6))5번 총합 7번을 나타내게 됩니다
그런데 왜 2번의 출력값은 0이 되었느냐 ISNUMBER는 그에해당하는 값을 찾아줍니다 그런데 FIND의함수는 그값이 있느냐 없느냐를 TRUE라는 텍스트로 표현하기 때문에 ISNUMBER에서 나오는 숫자의순서와 그뒤에 적힌 B2:B6의 배열순서는 B2:B6은 총 5개의 배열로 이루어져 있는데 ISNUMBER에서 나온값은 TREU,FALSE라는 텍스트를 띄기 때문에 여기에 1을 곱해줘서
숫자형식으로 바꾸어 뒤에나온 B2:B6의 배열순서를 찾아갈수 있게끔 숫자형식으로 바꾸어주는겁니다.
surprise
그럼 여기서 질문이 나오겠죠? 왜 1번과 3번은 *1을 안해줫는데도 값이 출력되지 않느냐?
1번과 3번은 ISNUMBER끼리 +,- 을 했습니다 텍스트 끼리 TRUE FALSE 를 갖고 있는 값들이 +,-를 하려고 자동적으로 TRUE는1을표시 FALSE는 0을 표시하여서 숫자로 자동표기되어 계산된겁니다. 그래서 출력값이 나온것이지요.
결론은 언제*1을 해주고 않해주냐인데
사용시기:ISNUMBER안에 수식이 1개만 있다면 사용해준다
안써도되는시기(생략):ISNUMBER안에 +,-의 수식이 있다면 *1을 안해줘도 된다.
  • *
    2012-07-07 10:00:20

    엑셀 안에 이런 표를 작성했다고 가정합시다.
    품질 가격
    우수 1
    우수 1
    우수 1
    최우수 1
    최우수 1
    ①=SUMPRODUCT(ISNUMBER(FIND("최우수",A2:A6))+ISNUMBER(FIND("우수",A2:A6)),B2:B6)
    출력값 : 7
    ②=SUMPRODUCT(ISNUMBER(FIND("우수",A2:A6)),B2:B6)
    출력값 : 0
    ③=SUMPRODUCT(ISNUMBER(FIND("우수",A2:A6))-ISNUMBER(FIND("최우수",A2:A6)),B2:B6)
    출력값 : 3
    ④=SUMPRODUCT(ISNUMBER(FIND("우수",A2:A6))*1,B2:B6)
    출력값 : 5
    위의 식들을 보고서 이해할줄을 알아야합니다 1번의 식은 최우수와 우수 의 합을 구하는 식입니다.
    최우수 안에도 우수라는 텍스트가 있으니 카운팅을 하겟죠?
    ISNUMBER(FIND("최우수",A2:A6)= 2번 ISNUMBER(FIND("우수",A2:A6))5번 총합 7번을 나타내게 됩니다
    그런데 왜 2번의 출력값은 0이 되었느냐 ISNUMBER는 그에해당하는 값을 찾아줍니다 그런데 FIND의함수는 그값이 있느냐 없느냐를 TRUE라는 텍스트로 표현하기 때문에 ISNUMBER에서 나오는 숫자의순서와 그뒤에 적힌 B2:B6의 배열순서는 B2:B6은 총 5개의 배열로 이루어져 있는데 ISNUMBER에서 나온값은 TREU,FALSE라는 텍스트를 띄기 때문에 여기에 1을 곱해줘서
    숫자형식으로 바꾸어 뒤에나온 B2:B6의 배열순서를 찾아갈수 있게끔 숫자형식으로 바꾸어주는겁니다.
    surprise
    그럼 여기서 질문이 나오겠죠? 왜 1번과 3번은 *1을 안해줫는데도 값이 출력되지 않느냐?
    1번과 3번은 ISNUMBER끼리 +,- 을 했습니다 텍스트 끼리 TRUE FALSE 를 갖고 있는 값들이 +,-를 하려고 자동적으로 TRUE는1을표시 FALSE는 0을 표시하여서 숫자로 자동표기되어 계산된겁니다. 그래서 출력값이 나온것이지요.
    결론은 언제*1을 해주고 않해주냐인데
    사용시기:ISNUMBER안에 수식이 1개만 있다면 사용해준다
    안써도되는시기(생략):ISNUMBER안에 +,-의 수식이 있다면 *1을 안해줘도 된다.
· 5MB 이하의 zip, 문서, 이미지 파일만 가능합니다.
· 폭언, 욕설, 비방 등은 관리자에 의해 경고없이 삭제됩니다.