함수사전 70쪽 COUNT함수의 '기출문제 따라잡기'에서
=COUNT(IF($B$7:$B$14=B3,$D$7:$D$14))
가 정답인데, 이것을
=COUNT(($B$7:$B$14=B3)*($D$7:$D$14))
로 바꿔서 해봤더니 결과가 다르게 나오더군요. COUNT함수는 IF함수만을 사용하여 배열수식을 작성해야 하는건가요?
꼭 그런것은 아니지만 거의 대부분은 그렇습니다.
count((조건1)*(범위))
를 했을때
조건이 참이면 1을 반영하고 조건이 거짓이면 0을 반영 합니다.
그럼
1 * 범위 = 범위값
0 * 범위 = 0
이 나오겠죠.
그럼 count(범위값,범위값, 0, 0, 범위값,0 ...) 과 같이 나오게 되죠. 그리고 이것들은 모두 숫자이기때문에
결과적으로는 모든 값을 세는 것이 되게 됩니다.
그래서 값이 제대로 나오지 않는 것입니다.
평균값이 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-05-11 09:59:59
꼭 그런것은 아니지만 거의 대부분은 그렇습니다.
count((조건1)*(범위))
를 했을때
조건이 참이면 1을 반영하고 조건이 거짓이면 0을 반영 합니다.
그럼
1 * 범위 = 범위값
0 * 범위 = 0
이 나오겠죠.
그럼 count(범위값,범위값, 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문과 함께 사용해야 합니다.
좋은 하루 되세요.