본문 바로가기

일하는 법

Iferror 또는 Iserror로 에러 표시 해결하기

반응형

0. Iferror 및 Iserror 함수는 왜 사용할까

엑셀로 실무를 볼 때 업무 효율성을 고려해서 함수를 쓰는 일이 많아요. 여러 가지 함수를 쓰다 보면 반복적인 부분들은 이러한 수식들을 복사/붙여 넣기 해서 한 번에 해결할 수 있고 이를 통해 작업에 소요되는 시간을 대폭 줄여줄 수 있기 때문이죠.

 

이렇게 함수를 쓰다 보면 생각보다 오류를 직면하는 상황들이 많이 발생해요. 분명 범위와 인수들을 맞게 집어넣었는데, 몇몇 셀들은 왜 원하는 값이 도출되지 않고 이상한 영문들이 반환되는지 확인을 해야 하게 되는 거죠. 이러한 상황에서 우리가 취하게 되는 행동은 크게 2가지 정도라고 보면 좋을 것 같아요.

 

행동 1) 수식에 잘못된 부분이 없는지 확인하고, 이상이 있는 부분을 수정하여 나머지 셀들에도 반영 후 원하는 값들을 도출해낸다

행동 2) 수식에 잘못된 부분이 없는지 확인하였으나 이상이 없다. 알고 보니 다른 셀과 연동이 되어 있는데 그 값이 아직 입력되지 않아서 에러가 발견되었다고 표시가 되는 것이라 그냥 둔다

 

행동 1의 경우 수식의 잘못된 부분을 찾아서 수정하고 해결하면 우리는 목적을 달성할 수 있어요. 행동 2의 경우, 반면에, 별다른 action이 요구되는 부분은 아니지만, 에러 문구가 뜬 셀을 그대로 두기에는 왠지 지저분해 보이고, 회사에서 상사가 볼 때 이게 뭔지 또 설명을 해줘야 하는 귀찮은 상황이 발생할 것만 같아요.

 

그래서 이번 포스팅에서는 행동 2에서 문제가 될 수 있는 "지저분한 에러" 문구들을 어떻게 해결할 수 있는지, 추가로 과연 내가 계산할 셀들이 오류가 있는지 없는지 확인하는 방법을 알려드리도록 할게요.

1. Iferror 사용법

위에서 말씀드린 바와 같이 이미 에러 문구들이 이미 표시된 상황을 가정해서 문제를 접근해볼 겁니다. 아래 예제를 보시면, 우리는 E열과 G열 나타난 에러 문구를 제거할 예정입니다.

엑셀

E열은 C열/E열로 모두 동일한 수식이 E 열 내 모두 동일하게 반영되어있고, G열은 E열 x F열로 마찬가지로 G열에 있는 모든 셀에 수식이 반영되어있습니다. 다만, D열에 아직 박스당 입수량 정보가 모두 입력되지 않아서 위와 같이 에러 문구가 표시된 것일 뿐이라, 해당 정보가 입력되는 순간 에러 문구는 사라지게 됩니다.

 

결론은 수식에는 문제가 없다는 말이이죠. 다만, 위와 같이 방치할 경우 해당 시트에 문제가 있어 보이기 때문에 뭔가 조치를 취해서 좀 더 깨끗했으면 좋겠다는 생각이 들 겁니다. 그래서 우리는 이번에 Iferorr를 쓸 예정이고, 해당 수식을 에러 표시가 뜨는 E열과 G열에 적용해보겠습니다.

엑셀

 

E열에 위와 같이 각 셀에 Iferror 수식을 입력하고, 첫 번째 자리에는 계산할 값을 입력하고, 두 번째 자리에는 만약 앞에서 계산한 값이 틀렸을 경우 반환하는 값을 기재하시면 됩니다.

 

우리는 지저분한 표시를 없애는 것이 목적이기 때문에 두 번째 자리에 ""라고 입력을 해줍니다. 그러면 위와 같이 E열에 기존에 표시되던 에러 문구들이 사라진 게 보이실 겁니다. 마찬가지로 G열에도 반영해보도록 하겠습니다.

엑셀

 

E열과 마찬가지로 G열도 에러 문구가 사라지고 깔끔하게 정리된 모습을 보실 수 있으실 겁니다. 추후 각 제품별 박스당 입수량 (D열) 정보를 모두 입수하게 되시고 입력하게 되면 모든 값들이 정상적으로 표시되는 것도 확인하실 수 있습니다.

2. Iserror 사용법

위에서 설명드린 Iferror는 오류를 발견하는 즉시 Action을 취해서 원하는 값으로 반환해준다는 장점이 있습니다. 물론 사용자가 원하는 반환 값이 있을 경우에 시간을 아껴주기 때문에 효율적이라고 생각하는 부분입니다.

 

만약 에러 발생 시 사용자가 정확히 어떤 값으로 엑셀이 반환해줬으면 하는지 결정을 못하고 그저 에러 여부만 확인을 하고 싶다면 Iserror를 써보셔도 좋습니다. 물론 그냥 생각한 수식을 입력해보고 결과 값이 오류라는 것을 확인하셔도 무방합니다.

엑셀

위와 같이 에러가 있는지 궁금한 셀에 Iserror 함수를 적용해보면 True 값이 도출됩니다. True는 진실이니 문제없다고 하는 게 아닌가?라는 의문이 드실 수 있는데, 함수는 이 셀 수식에 문제가 있니?라고 물어본 것이고 그에 대해 문제가 있다(True)가 대답한 거라고 보시면 됩니다.

 

여기서 주의하실 점은 1번에서 에러 표시가 되던 G열 몇몇 셀들이 정상적으로 금액이 표시가 된 것을 보실 수 있는데, E열의 값을 그냥 "1"로 반영하여 표시한 것으로 보입니다.

 

혹시라도 총 가격 정보라는 최종 값을 활용하실 예정이라면 아직 D열(박스당 입수량)이 정리가 안된 상태라는 점을 인지하실 필요가 있습니다. 혹시라도 최종보고가 이대로 올라간다면 문제가 될 수 있겠죠?

반응형