엑셀을 사용하다가 오류(#REF! 등)가 나면 난감한데, 오류 값이 있는 셀은 각종 수식(합계, 평균 등)이 먹히지 않기 때문이다. 물론 에러가 난 부분을 고쳐주는 것이 당연한 수순이겠지만, 당연히 나는 오류(?)에 대해 아무 수식도 먹히지 않는 다면 골치 아파진다.
예를 들어, 찾는 항목이 없을 경우도 가정한 작업에서 #REF! 가 나타나면 아무 수식도 걸 수 없어 참으로 난감하다. 물론 값 복사를 한 후 #REF! 부분만 찾아 지워주면 되긴 하는데 로우 데이터가 바뀌면 이 같은 작업을 반복해야 한다. 찾는 값이 없을 때 0을 되돌려주면 편하려만...
그러다가 뭔가 있을 것 같다 찾아보니 IFERROR이라는 함수가 있었다.
에러가 나면 특정 값을 돌려주는 마법 같은 함수. 물론, 정말 문제가 있는데 값을 반환하면 안 되니 조심하기!
<예시>
5개의 목록(빨, 주, 노, 초, 파, 남, 보)이 있고, 3개의 지역(A, B, C)에 목록과 해당 값(개수)이 무작위로 들어 있는 상황.
여기서 핵심은, 각각의 지역에서 값이 없는 목록은 해당 목록 자체가 데이터에 포함되어 있지 않는다는 것.
- 목록 : 빨주노초파남보 총 7개 항목
- 지역1 : 5개 항목 존재
- 지역2 : 4개 항목 존재
- 지역3 : 5개 항목 존재
- 총 목록 중에서 피벗(Pivot)에 있는 값(지역별 개수) 도출 =GETPIVOTDATA("개수",D$14,"지역A",$M4)
- 지역1 : '초, 보' 항목이 없어 #REF! 에러
- 지역2 : '주, 노, 파' 항목이 없어 #REF! 에러
- 지역3 : '초, 남' 항목이 없어 #REF! 에러
- 계 : #REF! 에러가 난 셀이 존재하여 합계(SUM)도 #REF! 에러를 냄
- IFERROR 함수를 사용해 에러난 경우(찾는 항목 부재) 0을 반환하게 함 =IFERROR(GETPIVOTDATA("개수",D$14,"지역A",$M15), 0)
- 총목록에서 해당 항목이 없는 경우 0으로 처리되어 합계까지 정상적으로 출력됨
- 주의 : 정말 오류가 있었는데 값을 반환하면 더 큰 사단이 날 수 있음
일단 이런 식으로 해결하긴 했는데, 비슷한 상황에서 쓸 수 있는 더 좋은 방법이 있는지 잘 모르겠다.