책 내용 질문하기
"
배열함수 문의드려요~
도서
[2010] 컴퓨터활용능력 1급 실기(엑셀, 액세스 2007 사용자용)
페이지
93
조회수
59
작성일
2011-06-26
작성자
첨부파일
실전 모의고사 F형 계산작업 4번 문제에서요~
답안에는
{=ABS(MEDIAN($F$17:$F$25)-MEDIAN(IF($B$17:$B$25=$A29,$F$17:$F$25)))}로 나와있는데,
IF를 사용하지 않고 "=MEDIAN((조건)*관련범위)"로 했더니
{=ABS(MEDIAN($F$17:$F$25)-MEDIAN(($B$17:$B$25=$A29)*$F$17:$F$25))}
중간값의 차가 15000이 아닌 30000으로 뜨네요;;
"=MEDIAN(IF(조건,관련범위)"나 "=MEDIAN((조건)*관련범위)" 모두
같은 방법인데 왜 결과값이 차이나죠?
제가 굵은 글씨로 쓴 배열수식이 잘못된건가요?
파일도 첨부하였으니 제대로 살펴보시고 확실히 답변해 주세요!!
답변
2011-06-27 10:51:05
midian 함수를 배열 수식으로 쓸때 if가 없이는 정확한 값이 나오지 않습니다. 이유는 조건이 참일때 값을 반환하고 조건이 거짓이면 0이 반환되기 때문에 값, 0, 값, 값, 0, 0 과 같이 나타나게 되어 제일 작은 값은 0이 나오게 되는 것이죠. 그래서 정확한 값이 나오지 않습니다.
여기에 대한 설명이
1편 엑셀 111 페이지에 있습니다.
평균값이 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문과 함께 사용해야 합니다.
좋은 하루 되세요.
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-06-27 10:51:05midian 함수를 배열 수식으로 쓸때 if가 없이는 정확한 값이 나오지 않습니다. 이유는 조건이 참일때 값을 반환하고 조건이 거짓이면 0이 반환되기 때문에 값, 0, 값, 값, 0, 0 과 같이 나타나게 되어 제일 작은 값은 0이 나오게 되는 것이죠. 그래서 정확한 값이 나오지 않습니다.여기에 대한 설명이1편 엑셀 111 페이지에 있습니다.평균값이 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문과 함께 사용해야 합니다.
좋은 하루 되세요.