평균값을 구할 때 AVERAGE(($A3=$B$12:$B$27)*$F$12:$F$27)이렇게 구하면 결과값이 달라지는 이유가 뭘까요?
=if(조건,참,거짓)
입니다. if 문을 사용하면 조건과 참 거짓 값을 표시해야 하므로
=AVERAGE(IF($A3=$B$12:$B$27,$F$12:$F$27))
조건 , 참 (거짓 값 생략)
로 입력하셔야 하는 것입니다.
IF문을 입력할 때 IF(A3=B12:B27,F12:F27)처럼 작성하는 것은 조건이 거짓일 경우 “반환할 값”이 생략(IF(A3=B12:B27,F12:F27,“반환할 값”))된 것으로, IF(A3=B12:B27,F12:F27,"")과 같이 조건의 값이 거짓일 때 이론적으로 아무 값도 없는 NULL 값을 반환하라는 뜻입니다. NULL 값이 반환되면 아무 값도 없는 것이기 때문에 AVERAGE 함수의 배열 요소에서 제외됩니다. 그런데 만약 배열 수식을 =AVERAGE((A3=B12:B$27)*F12:F27)과 같이 작성하면 조건이 거짓일 때 0이 AVERAGE 함수의 인수로 포함되어 평균이 계산되는 것입니다. 즉 ‘=AVERAGE (500,500,500, 500)’과 ‘=AVERAGE (0,500,0,0,500,0,0…)’의 차이겠죠. 같은 이유로 MIN, MEDIAN, SMALL 등의 함수도 배열 수식으로 작성할 경우 반드시 IF문과 함께 사용해야 합니다.
좋은 하루 되세요.
-
관리자2022-12-12 14:58:10
=if(조건,참,거짓)
입니다. if 문을 사용하면 조건과 참 거짓 값을 표시해야 하므로
=AVERAGE(IF($A3=$B$12:$B$27,$F$12:$F$27))
조건 , 참 (거짓 값 생략)
로 입력하셔야 하는 것입니다.
IF문을 입력할 때 IF(A3=B12:B27,F12:F27)처럼 작성하는 것은 조건이 거짓일 경우 “반환할 값”이 생략(IF(A3=B12:B27,F12:F27,“반환할 값”))된 것으로, IF(A3=B12:B27,F12:F27,"")과 같이 조건의 값이 거짓일 때 이론적으로 아무 값도 없는 NULL 값을 반환하라는 뜻입니다. NULL 값이 반환되면 아무 값도 없는 것이기 때문에 AVERAGE 함수의 배열 요소에서 제외됩니다. 그런데 만약 배열 수식을 =AVERAGE((A3=B12:B$27)*F12:F27)과 같이 작성하면 조건이 거짓일 때 0이 AVERAGE 함수의 인수로 포함되어 평균이 계산되는 것입니다. 즉 ‘=AVERAGE (500,500,500, 500)’과 ‘=AVERAGE (0,500,0,0,500,0,0…)’의 차이겠죠. 같은 이유로 MIN, MEDIAN, SMALL 등의 함수도 배열 수식으로 작성할 경우 반드시 IF문과 함께 사용해야 합니다.
좋은 하루 되세요.