부서별 평균 급여, 학년별 평균 점수처럼 "조건에 맞는 것들만 골라서 평균을 내야" 하는 상황을 만나면 많은 사람이 AVERAGEIF를 검색해서 그대로 수식만 베껴 쓴다. 그런데 정작 "평균이라는 연산 자체가 무엇인지" 다시 떠올려보면, AVERAGEIF가 왜 그런 결과를 내는지 훨씬 명확하게 이해할 수 있다. 질문을 하나 던져보자. 조건에 맞는 항목이 하나도 없을 때 평균은 어떻게 될까?
평균이란 무엇인가 — 합을 개수로 나눈 값
평균은 수학적으로 아주 단순하다. "값들을 모두 더한 합"을 "값의 개수"로 나눈 것이다. 이 정의를 기억해두면 AVERAGEIF의 동작 방식이 훨씬 쉽게 이해된다. AVERAGEIF는 새로운 개념을 도입한 함수가 아니라, 앞서 다룬 SUMIF(조건에 맞는 값의 합)와 COUNTIF(조건에 맞는 값의 개수)를 내부적으로 결합해 그 결과를 나눈 것과 같은 일을 한다고 보면 된다.
AVERAGEIF의 동작 원리
=AVERAGEIF(B2:B50, "영업팀", C2:C50)이 수식은 B2:B50에서 "영업팀"인 위치를 찾아 그 위치에 해당하는 C2:C50의 값들만 골라낸 뒤, 그 값들의 합을 다시 그 개수로 나눈다. 즉 개념적으로는 다음 계산과 동일한 결과를 낸다.
- SUMIF(B2:B50, "영업팀", C2:C50) — 영업팀 급여의 합
- COUNTIF(B2:B50, "영업팀") — 영업팀 인원 수
- 1번 결과를 2번 결과로 나눈 값 — 이것이 곧 AVERAGEIF의 결과
AVERAGEIF가 SUMIF, COUNTIF와 인수 구조(조건 범위, 조건, 대상 범위)를 거의 그대로 물려받은 이유도 여기에 있다. 셋 모두 '조건 범위를 참/거짓으로 나눠 대상 범위와 짝짓는다'는 동일한 뼈대 위에서, 마지막에 더하기·세기·나누기 중 무엇을 하느냐만 다를 뿐이다.
AVERAGEIFS — 여러 조건의 평균
=AVERAGEIFS(C2:C50, B2:B50, "영업팀", D2:D50, ">=2024-01-01")SUMIFS·COUNTIFS와 마찬가지로, AVERAGEIFS도 조건이 여러 개일 때 각 조건의 참/거짓 배열을 AND로 겹친 뒤 그 위치의 값만으로 합과 개수를 계산해 나눈다. 인수 순서 역시 SUMIFS처럼 '평균 낼 범위'가 맨 앞에 온다는 점을 기억해두면 헷갈리지 않는다.
가장 많이 걸려 넘어지는 두 가지 함정
첫 번째는 조건에 맞는 항목이 하나도 없을 때다. 앞서 던진 질문의 답인데, 이 경우 분모(개수)가 0이 되므로 AVERAGEIF는 #DIV/0! 오류를 반환한다. 조건이 잘못 입력되었거나 데이터에 해당 값이 아직 없을 때 자주 마주치는 오류이므로, IFERROR로 감싸서 "데이터 없음" 같은 안내 문구로 바꿔주는 것이 실무에서는 일반적이다.
두 번째는 빈 셀과 0의 차이다. AVERAGEIF는 대상 범위에서 빈 셀은 계산에서 아예 제외하지만, 셀에 숫자 0이 입력되어 있으면 그 0은 평균 계산에 그대로 포함된다. 예를 들어 미입력 상태와 실제 매출 0원은 시트에서는 비슷해 보여도 평균 결과에는 전혀 다른 영향을 준다. 데이터를 입력할 때 이 둘을 구분해서 관리해야 나중에 평균값이 왜곡되는 것을 막을 수 있다.
Q. 조건에 맞는 항목이 1개뿐이면 평균은 어떻게 되나요?
그 항목 하나의 값이 그대로 평균값이 된다. 합을 개수 1로 나누는 것이므로 자기 자신과 같아진다.
Q. AVERAGEIF와 AVERAGE를 같이 쓸 수 있나요?
가능하다. 조건 없이 전체 평균이 필요하면 AVERAGE, 조건이 필요하면 AVERAGEIF·AVERAGEIFS를 쓰면 된다. 두 함수는 상황에 따라 같은 시트 안에서 얼마든지 함께 사용된다.
마무리
AVERAGEIF를 외울 때는 새로운 함수를 배운다고 생각하기보다, "합을 개수로 나눈다"는 평균의 정의 위에 SUMIF와 COUNTIF의 조건부 집계 원리를 그대로 얹은 것이라고 이해하는 편이 오래 기억에 남는다. 다음 글에서는 이런 조건부 집계와는 조금 다른 접근으로, 배열끼리의 곱셈만으로 조건을 표현하는 SUMPRODUCT의 원리를 살펴본다.