계산문제 3번에서
=AVERAGE(($B$12:$B$27=$A3)*$F$12:$F$27)와 =AVERAGE(IF($B$12:$B$27=$A3,$F$12:$F$27))의 차이가 뭔가요?
max는 if함수 없이 조건*범위만 해도 되는데 average는 어떻게 다른건지 모르겠습니다.
시험이 코앞이라 자주 질문을 올리게 되는데 늘 감사합니다.
안녕하세요.
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문과 함께 사용해야 합니다.
즐거운 하루 되세요.
-
관리자2023-03-26 21:10:28
안녕하세요.
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문과 함께 사용해야 합니다.
즐거운 하루 되세요.