2016시나공 summary를 공부하고 있는 학생입니다
배열함수에 관한 실습 08 p.24를 공부하다 의문이 생겨 질문드립니다
해설 중 건물번호별 계약면적을 구하는 방법은 두가지
{=sum((조건)*(합계를_구할_범위))}
{=sum(if(조건,합계를_구할_범위))}
이렇게 써져있습니다.
이에따라
(조건)*(합계를_구할_범위)와
if(조건,합계를_구할_범위)를 같은 의미로 이해하였고 서로 완벽히 치환된다고 이해를 했습니다.
그런데 다음문제(건물 번호별 평균 월임대료)를 구할 때는
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,400000,165000,770000)’와 ‘=AVERAGE(0,550000,0,0,1650000,0,0…)’의 차이겠죠. 같은 이유로 MIN, MEDIAN, SMALL 등의 함수도 배열 수식으로 작성할경우 반드시 IF문과 함께 사용해야 합니다.
즐거운 하루 되세요.
-
*2016-03-02 10:03:55
안녕하세요.
다음 내용은 기본서 교재에 들어 있는 내용입니다. 참고하여 읽어보세요.
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,400000,165000,770000)’와 ‘=AVERAGE(0,550000,0,0,1650000,0,0…)’의 차이겠죠. 같은 이유로 MIN, MEDIAN, SMALL 등의 함수도 배열 수식으로 작성할경우 반드시 IF문과 함께 사용해야 합니다.즐거운 하루 되세요.