엑셀 ISNUMBER 함수는 ISNUMBER(value) 하나의 인수만 받아서, 값이 숫자이면 TRUE를, 숫자가 아니면 FALSE를 돌려주는 함수인데요.
겉보기엔 숫자인데 텍스트로 저장된 값을 골라낼 때 쓰고, SEARCH 함수와 함께 ISNUMBER(SEARCH(...))로 묶으면 셀에 특정 문자가 들어 있는지를 확인하는 수식이 됩니다.
"캠페인 이름에 「brand」가 들어간 행만 따로 표시하고 싶은데, 필터 말고 수식으로는 안 되나?" 광고 리포트를 내려받아 정리하다 보면 이런 생각이 들 때가 있죠. 반대로 합계가 이상해서 들여다보니 숫자처럼 보이는 칸 몇 개가 사실은 글자였던 경험도 한 번쯤 있으실 텐데요. 이번 글에서는 ISNUMBER 함수가 무엇을 확인하는지부터 텍스트 숫자 찾기, 특정 문자 포함 여부 확인, 조건부 서식 활용, 다른 IS 함수와 주의할 점까지 정리해 보겠습니다.
1. 엑셀 ISNUMBER 함수는 무엇을 확인할까요?
IS 함수 도움말은 ISNUMBER를 ISBLANK, ISTEXT 등과 함께 IS 함수라는 묶음으로 설명하는데요, 이 함수들은 모두 값의 유형을 검사해서 그 결과에 따라 TRUE 또는 FALSE를 돌려줍니다. ISNUMBER는 그중에서 값이 숫자를 참조하는 경우 TRUE를 돌려주고, 인수 자리에는 빈 셀, 오류, 논리값, 텍스트, 숫자, 참조 값 또는 이들을 가리키는 이름을 넣을 수 있습니다.
입구에서 출입증만 확인하는 안내 데스크를 떠올리시면 쉬운데요. 누가 왔는지, 무슨 일로 왔는지는 묻지 않고 「출입증이 있다, 없다」만 답해 주는 것처럼, ISNUMBER도 값이 얼마인지는 신경 쓰지 않고 숫자인지 아닌지만 알려 줍니다.
도움말 예제를 보면 =ISNUMBER(4)는 TRUE이고, 330.92가 들어 있는 셀을 검사하면 역시 TRUE가 나옵니다.
날짜도 숫자로 취급된다는 점은 알아 두시면 좋은데요. DATEVALUE 함수 도움말에 따르면 엑셀은 날짜를 계산에 쓸 수 있도록 순차적인 일련 번호로 저장하고, 기본 설정에서 1900년 1월 1일이 일련 번호 1입니다. 그래서 날짜로 제대로 입력된 셀을 ISNUMBER로 검사하면 TRUE가 나오고, 날짜처럼 보여도 텍스트로 들어간 셀은 FALSE가 나오죠.
예시 그림: B열에
=ISNUMBER(A2)를 채우면 숫자와 날짜는 TRUE, 텍스트로 저장된 숫자와 글자는 FALSE가 나옵니다(가상 데이터).
2. 텍스트로 저장된 숫자는 왜 FALSE가 나올까요?
IS 함수 도움말의 주의 항목에는 IS 함수의 값 인수는 변환되지 않는다는 문장이 있습니다.
숫자가 필요한 대부분의 다른 함수는 텍스트 "19"를 숫자 19로 바꿔서 계산하지만, ISNUMBER("19")에서는 "19"가 숫자로 바뀌지 않아 FALSE가 나온다고 도움말은 설명하는데요.
큰따옴표로 묶은 숫자는 텍스트로 처리되기 때문입니다.
이 성질 덕분에 ISNUMBER는 텍스트로 저장된 숫자를 찾는 도구로 쓰기 좋습니다.
매출 열 옆에 =ISNUMBER(C2)를 넣어 아래로 채우면 FALSE가 나온 행이 바로 합계에서 빠지고 있을 가능성이 큰 칸인데요, 필터로 FALSE만 골라 보면 어디를 고쳐야 할지 한눈에 보입니다.
찾은 칸을 진짜 숫자로 바꾸는 방법은 엑셀 숫자 인식 안됨 글에 따로 정리해 두었고, 텍스트로 된 날짜라면 DATEVALUE 함수로 일련 번호로 바꿀 수 있습니다.
개수만 알고 싶다면 행마다 ISNUMBER를 넣지 않아도 되는데요. COUNT 함수 도움말에 따르면 COUNT는 숫자를 포함한 셀의 개수를 세기 때문에, =COUNT(C2:C100)과 =COUNTA(C2:C100)의 결과가 다르면 숫자가 아닌 값이 섞여 있다는 신호로 볼 수 있습니다.
그렇다면 숫자 여부가 아니라 「이 셀에 brand라는 글자가 들어 있는가」는 어떻게 확인할까요?
3. ISNUMBER SEARCH로 특정 문자 포함 여부를 확인하는 법은?
셀에 텍스트가 포함되어 있는지 확인하는 방법 도움말은 셀의 일부가 특정 텍스트와 일치하는지 확인하려면 IF, SEARCH, ISNUMBER 함수를 함께 쓰라고 안내합니다. 원리는 SEARCH 함수에 있는데요. SEARCH 함수 도움말에 따르면 SEARCH는 찾는 글자가 몇 번째에서 시작하는지를 숫자로 돌려주고, 찾지 못하면 #VALUE! 오류를 돌려줍니다.
- 찾았을 때: SEARCH 결과가 숫자이므로
ISNUMBER(SEARCH("brand",A2))는 TRUE입니다. - 못 찾았을 때: SEARCH 결과가 #VALUE! 오류이고 오류는 숫자가 아니므로 FALSE입니다.
결국 ISNUMBER가 SEARCH의 결과를 「찾았다, 못 찾았다」로 바꿔 주는 셈인데요. 보고서에 TRUE·FALSE 대신 알아보기 쉬운 말을 띄우려면 IF로 한 번 더 감쌉니다.
=IF(ISNUMBER(SEARCH("brand",A2)),"브랜드","일반")
SEARCH는 대소문자를 구분하지 않기 때문에, 이 수식은 「Brand_검색」과 「BRAND_쇼핑」을 모두 브랜드로 분류합니다.
예시 그림: SEARCH는 대소문자를 구분하지 않아서 Brand와 BRAND가 들어간 행이 모두 「브랜드」로 분류됩니다(가상 데이터).
4. SEARCH와 FIND는 무엇이 다를까요?
같은 자리에 FIND 함수를 넣어도 수식은 동작하지만 결과가 달라질 수 있습니다. FIND/FINDB 및 SEARCH/SEARCHB 함수의 #VALUE! 오류 도움말은 두 함수가 같은 방식으로 작동하지만 FIND는 대소문자를 구분하고 SEARCH는 구분하지 않는다고 설명하는데요.
도움말 예제에서 =FIND("gloves","Gloves (Youth)",1)은 #VALUE! 오류가 나고, 같은 조건의 =SEARCH("gloves","Gloves (Youth)",1)은 1을 돌려줍니다.
| 구분 | SEARCH | FIND |
|---|---|---|
| 대소문자 | 구분하지 않음 | 구분함 |
| 와일드카드 | ?(한 글자)와 *(여러 글자) 사용 가능 | 사용할 수 없음 |
| 못 찾으면 | #VALUE! 오류 | #VALUE! 오류 |
와일드카드는 SEARCH 도움말에 나와 있는데요, 물음표나 별표 자체를 찾고 싶다면 그 앞에 물결표(~)를 붙여야 합니다.
FIND 쪽은 Microsoft Learn의 FindB 설명에 FIND와 FINDB 모두 대소문자를 구분하고 와일드카드 문자를 허용하지 않는다고 적혀 있습니다.
캠페인 이름처럼 대소문자가 섞여 들어오는 데이터라면 SEARCH가 편하고, 제품 코드처럼 대소문자가 의미를 갖는 값이라면 FIND로 바꿔 쓰시면 됩니다.
SEARCH는 대소문자를 무시하고 와일드카드를 쓸 수 있고, FIND는 대소문자까지 똑같아야 찾습니다.
같은 수식은 조건부 서식에도 그대로 들어갑니다. 조건부 서식 도움말에 따르면 수식을 사용하여 서식을 지정할 셀 결정 규칙의 수식은 등호로 시작하고 TRUE 또는 FALSE를 돌려줘야 하는데요, =ISNUMBER(SEARCH("brand",$A2))는 이 조건에 딱 맞기 때문에 brand가 들어간 행 전체에 색을 칠할 수 있습니다.
5. ISNUMBER 말고 어떤 IS 함수가 있고, 무엇을 주의해야 할까요?
IS 함수 도움말에 나온 함수 중 실무에서 자주 만나는 것만 추려 보면 다음과 같습니다.
| 함수 | TRUE를 돌려주는 경우 |
|---|---|
| ISNUMBER | 값이 숫자를 참조할 때 |
| ISTEXT | 값이 텍스트를 참조할 때 |
| ISNONTEXT | 값이 텍스트가 아닌 항목을 참조할 때(빈 셀도 TRUE) |
| ISBLANK | 값이 빈 셀을 참조할 때 |
| ISERROR | 값이 오류 값일 때(#N/A 포함) |
| ISNA | 값이 #N/A 오류일 때 |
쓰기 전에 짚어 둘 점은 이렇습니다.
- 따옴표 안 숫자는 텍스트: 앞에서 본 것처럼
ISNUMBER("19")는 FALSE입니다. 수식에 숫자를 직접 적을 때는 큰따옴표를 빼야 합니다. - ISNONTEXT는 숫자 확인용이 아닙니다: 도움말에 따르면 ISNONTEXT는 빈 셀에서도 TRUE를 돌려주는데요, 「텍스트가 아님」이 곧 「숫자임」은 아니라서 숫자만 고르려면 ISNUMBER를 쓰는 편이 정확합니다.
- 구글 시트에서도 같습니다: 구글 시트 ISNUMBER 도움말도 숫자를 문자열로 입력하면(
ISNUMBER("123")) FALSE를 돌려준다고 적고 있고, IF와 함께 가장 많이 쓰인다고 안내합니다. - 지원 버전: IS 함수 도움말의 적용 대상에는 Microsoft 365용 Excel, Excel 2024, 2021, 2019, 2016과 웹용 Excel이 올라 있습니다.
정리하면 ISNUMBER는 숫자인지 아닌지만 답하는 함수이고, 혼자 쓰면 텍스트 숫자를 찾는 데, SEARCH와 묶으면 특정 문자 포함 여부를 확인하는 데 쓰입니다. 결과를 글자로 보여 주고 싶을 때는 IF로 감싸는 흐름을 기억해 두시고, TRUE·FALSE를 다루는 다른 함수는 엑셀 TRUE FALSE 함수 글을 참고해 주세요.
자주 묻는 질문
- 엑셀 ISNUMBER 함수는 어떻게 쓰나요?
- =ISNUMBER(A2)처럼 검사할 셀이나 값을 하나 넣으면, 값이 숫자일 때 TRUE, 숫자가 아닐 때 FALSE를 돌려줍니다. 날짜는 엑셀 안에서 일련 번호로 저장되므로 날짜로 입력된 셀도 TRUE가 나옵니다. 결과를 글자로 보이게 하려면 IF 함수의 첫 번째 인수에 넣어 씁니다.
- ISNUMBER 함수에 따옴표로 묶은 숫자를 넣으면 왜 FALSE가 나오나요?
- Microsoft IS 함수 도움말에 따르면 IS 함수의 값 인수는 변환되지 않고, 큰따옴표로 묶은 숫자는 텍스트로 처리되기 때문입니다. 다른 함수는 텍스트 19를 숫자로 바꿔 계산하는 경우가 많지만 ISNUMBER는 바꾸지 않고 그대로 검사합니다.
- 엑셀에서 셀에 특정 문자가 포함되어 있는지 확인하려면 어떻게 하나요?
- =ISNUMBER(SEARCH("찾을 글자",A2))를 쓰면 포함되어 있을 때 TRUE, 없을 때 FALSE가 나옵니다. SEARCH는 찾은 위치를 숫자로, 못 찾으면 #VALUE! 오류를 돌려주는데 ISNUMBER가 이를 TRUE와 FALSE로 바꿔 줍니다. 결과를 글자로 보려면 IF로 감싸고, 대소문자까지 구분하려면 SEARCH 대신 FIND를 씁니다.
- ISNUMBER SEARCH 수식은 대소문자를 구분하나요?
- 구분하지 않습니다. SEARCH 함수는 대소문자를 구분하지 않으므로 brand를 찾으면 Brand와 BRAND도 찾습니다. 대소문자를 구분해야 한다면 같은 자리에 FIND 함수를 넣으면 되는데, FIND는 와일드카드 문자를 쓸 수 없다는 점이 다릅니다.
관련 글 더 보기
엑셀 데이터를 확인하고 정리할 때 함께 보면 좋은 글들입니다.
- 엑셀 숫자 인식 안됨 | 텍스트로 저장된 숫자를 숫자로 바꾸는 법 - ISNUMBER로 찾은 텍스트 숫자를 진짜 숫자로 바꾸는 방법
- 엑셀 TRUE FALSE 함수 | AND·OR·NOT 논리 함수 쓰는 법 - ISNUMBER 결과를 AND·OR·IF와 조합하는 방법
- 엑셀 피벗테이블이란? 뜻부터 만들기·새로고침까지 실무 활용법 - 브랜드·일반으로 분류한 데이터를 피벗으로 요약하는 방법
