[엑셀활용]Find함수로 IndexOf 기능을 써보자.
- 유용한정보 / IT&블로그
- 2020. 5. 11.

안녕하세요. 판다 J입니다.
제가 사실 Java 개발자인데요. 예상보다 업무 하다가 엑셀을 많이 사용하게 됩니다. 하지만 보통 엑셀은 저 같은 개발자보다 현업 업무를 하시는 분들이 훨씬 더 잘 사용하시더군요. 엑셀은 잘 다룬다는 것은 여러 모로 참 유용합니다. 저는 솔직히 엑셀을 잘 못 다루는 편이라 막히는 부분이 생기면 도움말도 보고 구글링도 해서 찾아보고 주변의 도움도 많이 받는데요. 보통 저 같은 경우 엑셀을 사용하다가 쓰고 싶은 기능이 있으면 Java 함수나 SQL 함수를 먼저 떠올리게 됩니다.
그러고는 "혹시 엑셀에도 비슷한 용도로 사용하는 함수가 있지 않을까?" 하고 생각해 보고 검색해보곤 합니다. 하지만 제가 잘 못찾아서 그런지 생각처럼 프로그램 언어 또는 SQL함수와 매칭 시켜서 소개된 글을 찾아보기 쉽지는 않더군요.
오늘은 업무상 엑셀을 사용하다 보니 Java의 IndexOf 기능을 썼으면 좋겠는데 하는 경우가 생겼는데 생각이 나지 않아서 찾아보게 되었습니다. 그래서 찾아낸 비슷한 기능의 엑셀 함수 Find를 소개할까 합니다.
" java 의 IndexOf와 유사 한 기능의 엑셀 함수 Find "
먼저, Java에서 "대상문자열".IndexOf("검색문자") 이렇게 하면 대상 문자열에 검색 문자가 없으면 -1을 리턴하고 대상 문자열에 있으면 그 첫 번째 위치를 리턴합니다.
예를 들어, "ABCDE".IndexOf("C") 는 2를 리턴하죠.
엑셀에서 FIND함수는 아래와 같이 사용합니다. 단, IndexOf는 맨 처음 위치가 0 인 반면 엑셀에서는 1입니다.

이번에는 문자열에 "한국"이라는 단어가 들어 있는지 여부를 확인하고자 합니다.
java에서 IndexOf는 없으면 0을 리턴하는 것과 달리 엑셀에서는 Null이라는 의미의 에러가 나는군요.

=IF(ISERROR(FIND("한국",A2,1)),0,FIND("한국",A2,1)-1) 와 같이 사용해 보았습니다.
ISERROR() 은 안의 결과가 #VALUE! 등의 에러일 경우 TRUE를 리턴합니다. SQL 함수의 NVL() 을 연상하게 됩니다.
IF( 조건, A, B) 조건이 TRUE일 경우 A를 FALSE 일 경우 B를 리턴합니다.
따라서, 검색하는 문자열이 없을 경우 0을 있을 경우 결과에 -1을 해서 IndexOf 와 같은 결과을 출력하게 사용해 보았습니다.

처음으로 엑셀 활용에 관한 글을 적어 보았는데. 그냥 보통 글을 적는 것보다 설명하기가 훨씬 어렵군요.
앞으로 종종 좋은 기능이 있으면 좀 더 쉽고 간단하게 소개하도록 하겠습니다.
2020/05/15 - [유용한정보/IT&블로그] - [엑셀활용]셀 수식 사용시 셀 고정하여 사용하기. 절대경로, 상수처럼
2020/06/26 - [유용한정보/IT&블로그] - [엑셀활용]엑셀에서 조건문, 논리연산자 IF, OR, AND, ELSE
'유용한정보 > IT&블로그' 카테고리의 다른 글
[IT&블로그]구글 애드센스 신청 & 페이스북 페이지 생성 (2) | 2020.05.30 |
---|---|
[엑셀활용]셀 수식 사용시 셀 고정하여 사용하기. 절대경로, 상수처럼 (0) | 2020.05.15 |
[IT&블로그]모바비 포토에디터 ( Movavi Photo Editor ) 소개 (0) | 2020.05.07 |
[IT]코로나19 재택근무 개인PC 환경설정 (0) | 2020.04.15 |
[IT]헤이구글~구글 홈 미니 너를 알려줘~ (2) | 2020.03.26 |