2011년 3월 11일 금요일

excel error #VALUE find() or else 엑셀 함수에서 오류가 날때

In excel worksheet function such as find(), if #VALUE error occur, then you can use ISERROR function to cope with errors.

If you do something with FIND(), all works well but if nothing is found then error occurs. Using ISERROR evaluation, you can handle error.

=IF(ISERROR(FIND(...)), ... , ...)

=IF(ISERROR(FIND("(",A1)), A1, MID(A1, 1, FIND("(",A1)-1))


엑셀 워크시트 함수를 사용할 때, find()를 예를 들면, 문자열에 무엇이 있다면 다른 작업을 수행하는데, 문자열이 들어 있지 않으면, 바로 오류 #VALUE가 발생해 버린다. 그러면, ISERROR 함수를 사용해서, 해당 함수 사용시 오류가 나는 경우 어떻게 할지, 안나는 경우 어떻게 할지를 사용해주면 된다.
예를들어, A1의 문자열내에 괄호"(" 뒷부분을 삭제하는 경우에 워크시트 함수는 아래와 같다.


=IF(ISERROR(FIND("(",A1)), A1, MID(A1, 1, FIND("(",A1)-1))


MS 예제 스타일이라면 아래와 같다. B열에는 위의 함수가 들어 있다.


A B

1 사과(특) 사과

2 배 배



더 간단한 방법

엑셀에 iferror()라는 함수가 있다. 위에처럼 복잡하게 쓸 것이 아니라,
=iferror(오류가 없을 때 값, 오류가 발생할 때 값)을 적으면 된다.

텍스트(A1 셀)에서 콜론(:)이 있으면 해당 콜론(:)이후 부분을 떼어내 문자열로 적는데, 콜론(:)이 없다면, 아무것도 표시 하지 않는 함수는 아래와 같다.

=IFERROR(MID(A1,FIND(":",A1,1),100),"")

오류가 없을 때 : MID(A1,FIND(":",A1,1),100)
오류가 있을 때 : ""


Simple method : iferror function

=IFERROR("no error occurs", "when error occurs")

example,
=IFERROR(MID(A1,FIND(":",A1,1),100),"")

If no error, then the value is MID(A1,FIND(":",A1,1),100).
If error, then value is "".

댓글 없음:

댓글 쓰기