책 내용 질문하기
다시 질문 입니다.
도서
[2011] 컴퓨터활용능력 1급 실기(엑셀, 액세스 2003 사용자용)
페이지
조회수
42
작성일
2011-08-06
작성자
첨부파일


시나공 컴활 실기 2003버전/섹션 10/ 문제2

=AVERAGE(IF(C14:C25=F3,E14:E25)// 이것이 책에 적혀져 있던 답이고////결과1억3천만원
=AVERAGE((IF(C14:C25=F3,1))*(E14:E25)// 이것이 제가 응용해 만든 것입니다.////결과 6천 5백만원
두개가 뭐가 다른것인지 모르겠습니다.
제가 두번째 함수를 말해보겠습니다.(틀린것이 있다면 지적 부탁드립니다.)
AVERAGE함수로 결과값을 평균 내려고 했습니다. 그리고 위의 것과 다른것은 먼저 조건문IF(조건,1,0)으로 만들어서 만약에 조건이 TURE이면 1로 주고, FALSE라면 0으로 주려고 했습니다. 만약 IF문이 끝나고서
=AVERAGE((1,0,1,1,1,0)* E14:E25)했다면 결과 값은 위와 같아야 하지 않나요??

그리고 답변주신 대로 저는

=AVERAGE((IF(C14:C25=F3,1))*(E14:E25))를
=AVERAGE((IF(C14:C25=F3,1,0))*(E14:E25))//if조건문 알려주신대로 뒤에 ",0"을 붙였습니다.
근데도 결과가 6천 5백만원으로 절반값으로 나옵니다.

답변
2011-08-08 12:45:23

if문에서 0과 1이 나와서 곱하게 되죠.

그럼 곱한 값에 대한

0과 조건에 맞는 값이 나오게 됩니다.

average함수는 값들을 모두 더한후에 그 값을 구한 개수로 나누게 되죠.

책의 식은 조건이 맞을때 값을 반영합니다. 원랙 값은 10개 이고 조건에 맞는 값이 10,20,30,40,50 5개 이라면

avearge(if(조건,값))

으로 하여 조건에 맞으면 값을 반영하여 average(10,20,30,40,50) 이 되어 150/5 를 하여 30이되는데

님과 같이 작성하시면

조건에 맞는 값과 맞지 않는값 모두 나오기 때문에

average(10,20,0,0,30,40,50,0,0,0) 10개 의 값이 나와서 150/10 가 되어 15가 평균으로 나오게 됩니다.

그러므로 반값이 나오게 되는 것이죠.

즉 average함수는 님이 만드신 식으로 작성하기 어렵습니다.

이부분에 대한 설명이 있는데요.

1편 엑셀 113 페이지 설명입니다.

평균값이 186,503이 나왔어요.
if문을 입력할때 if(B11:B29=B3,G11:G29)처럼 작성하는 것은 조건이 거짓일 경우 "반환할 값"이 생략 (if(B11:B29=B3,G11:G29,"반환할 값"))된 것으로, if(B11:B29=B3,G11:G29,"")과 같이 조건의 값이 거짓일 때 이론적으로 아무값도 없는 NULL값을 반환 하라는 뜻입니다. NULL값이 반환되면 아무것도 없는 것이기 떄문에 AVERAGE 함수의 배열요소에서 제외 됩니다. 그런데 만약 배열 수식을 AVERAGE(IF(B11:B29=B3,G11:G29,0)이나 AVERAGE((B11:B29=B3)*(G11:G29)와 같이 작성하면 조건이 거짓일때 0이 AVERAGE함수로 포함되어 평균이 계산 되는 것입니다. 즉 "=AVERAGE(550000.1650000,4000000,165000,770000)" 와 "=AVERAGE(550000.1650000,4000000,165000,770000,0...)"의 차이겠죠. 같은 이유로 MIN, MEDIAN,SMALL 등의 함수도 반드시 IF문과 함께 사용해야 합니다.

좋은 하루 되세요.

"
  • *
    2011-08-08 12:45:23

    if문에서 0과 1이 나와서 곱하게 되죠.

    그럼 곱한 값에 대한

    0과 조건에 맞는 값이 나오게 됩니다.

    average함수는 값들을 모두 더한후에 그 값을 구한 개수로 나누게 되죠.

    책의 식은 조건이 맞을때 값을 반영합니다. 원랙 값은 10개 이고 조건에 맞는 값이 10,20,30,40,50 5개 이라면

    avearge(if(조건,값))

    으로 하여 조건에 맞으면 값을 반영하여 average(10,20,30,40,50) 이 되어 150/5 를 하여 30이되는데

    님과 같이 작성하시면

    조건에 맞는 값과 맞지 않는값 모두 나오기 때문에

    average(10,20,0,0,30,40,50,0,0,0) 10개 의 값이 나와서 150/10 가 되어 15가 평균으로 나오게 됩니다.

    그러므로 반값이 나오게 되는 것이죠.

    즉 average함수는 님이 만드신 식으로 작성하기 어렵습니다.

    이부분에 대한 설명이 있는데요.

    1편 엑셀 113 페이지 설명입니다.

    평균값이 186,503이 나왔어요.
    if문을 입력할때 if(B11:B29=B3,G11:G29)처럼 작성하는 것은 조건이 거짓일 경우 "반환할 값"이 생략 (if(B11:B29=B3,G11:G29,"반환할 값"))된 것으로, if(B11:B29=B3,G11:G29,"")과 같이 조건의 값이 거짓일 때 이론적으로 아무값도 없는 NULL값을 반환 하라는 뜻입니다. NULL값이 반환되면 아무것도 없는 것이기 떄문에 AVERAGE 함수의 배열요소에서 제외 됩니다. 그런데 만약 배열 수식을 AVERAGE(IF(B11:B29=B3,G11:G29,0)이나 AVERAGE((B11:B29=B3)*(G11:G29)와 같이 작성하면 조건이 거짓일때 0이 AVERAGE함수로 포함되어 평균이 계산 되는 것입니다. 즉 "=AVERAGE(550000.1650000,4000000,165000,770000)" 와 "=AVERAGE(550000.1650000,4000000,165000,770000,0...)"의 차이겠죠. 같은 이유로 MIN, MEDIAN,SMALL 등의 함수도 반드시 IF문과 함께 사용해야 합니다.

    좋은 하루 되세요.

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