이거 보면 답이 ={MAX(($B$12:$B$27=$A3)*($F$12:$F$27))-AVERAGE(IF(($B$12:$B$27=$A3),($F$12:$F$27)))} 인데 여기서 왜 if 함수를 안넣고 average(($B$12:$B$27=$A3)*($F$12:$F$27)) 로 넣으면 값이 달라지는 것입니까?
배열 수식이므로 배열수식 사용방법으로 함수를 작성하셔야 합니다.
average(if 로 작성하는 이유는 조건에 맞는 값만 추출하여 사용하기 위한 것입니다.
average(if( 로 작성하면
4,5,6,7,8 이라는 값의 평균은 30/5 이므로 6 이지만
average 로 사용하면 조건에 맞지 않는 경우 0값이 포함이 됩니다.
4,0,5,6,7,8, 로 지정하면 30/6 이므로 5 가 됩니다.
그러므로 조건에 맞지 않은 값을 0 으로 표시하면 안되는 것이죠.
그렇게 표시하지 않기 위해서 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(0,550000,0,0,1650000,4000000,0,165000,770000,0...)''의 차이겠죠. 같은 이유로 MIN, MEDIAN,SMALL 등의 함수도 반드시 IF문과 함께 사용해야 합니다.
좋은 하루 되세요.
-
*2016-06-09 13:11:43
배열 수식이므로 배열수식 사용방법으로 함수를 작성하셔야 합니다.
average(if 로 작성하는 이유는 조건에 맞는 값만 추출하여 사용하기 위한 것입니다.
average(if( 로 작성하면
4,5,6,7,8 이라는 값의 평균은 30/5 이므로 6 이지만
average 로 사용하면 조건에 맞지 않는 경우 0값이 포함이 됩니다.
4,0,5,6,7,8, 로 지정하면 30/6 이므로 5 가 됩니다.
그러므로 조건에 맞지 않은 값을 0 으로 표시하면 안되는 것이죠.
그렇게 표시하지 않기 위해서 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(0,550000,0,0,1650000,4000000,0,165000,770000,0...)''의 차이겠죠. 같은 이유로 MIN, MEDIAN,SMALL 등의 함수도 반드시 IF문과 함께 사용해야 합니다.
좋은 하루 되세요.