엑셀에서 데이터를 다루다 보면, 특정 셀의 값이 '숫자'인지 '텍스트'인지, 혹은 '오류'인지 구분해야 할 때가 많습니다.
특히 외부에서 가져온 데이터를 정제하거나, 복잡한 계산을 수행하기 전에 데이터 유효성을 검사할 때 이런 구분이 필수적이죠.
이때 엑셀의 강력한 논리 함수 중 하나인 ISNUMBER 함수가 빛을 발합니다.
ISNUMBER 함수란 무엇인가요?
ISNUMBER 함수는 주어진 값이 숫자인지 여부를 검사하여 TRUE 또는 FALSE를 반환하는 논리 함수입니다.
- 숫자, 날짜, 시간 (엑셀에서 날짜와 시간도 내부적으로 숫자로 처리됩니다) 일 경우 TRUE를 반환합니다.
- 텍스트, 공백, 오류 값, 논리 값 (TRUE/FALSE 자체) 일 경우 FALSE를 반환합니다.
사용법: =ISNUMBER(값)
예시:
- =ISNUMBER(123) -> TRUE
- =ISNUMBER("Hello") -> FALSE
- =ISNUMBER("123") -> FALSE (따옴표 안에 있는 숫자는 텍스트로 인식됩니다!)
- =ISNUMBER(DATE(2025,7,10)) -> TRUE (날짜는 숫자이므로)
- =ISNUMBER(A1) (A1 셀에 텍스트가 있다면) -> FALSE
ISNUMBER는 언제 사용하나요?
ISNUMBER 함수는 주로 다른 함수와 결합하여 특정 조건에 따라 다른 작업을 수행할 때 유용하게 사용됩니다.
- 데이터 유형 검사: 계산을 시작하기 전, 셀에 들어있는 값이 정말 숫자인지 확인하여 오류를 방지할 때 사용합니다.
- 유효성 검사: 데이터 입력 시 숫자가 아닌 값이 들어오는 것을 막을 때 활용할 수 있습니다.
- 오류 처리: 오류 값과 숫자를 구분하여 특정 동작을 수행할 때 사용합니다.
- 조건부 서식: 숫자만 강조하거나 텍스트만 다르게 표시할 때 사용할 수 있습니다.
ISNUMBER를 대체할 수 있는 방법은?
ISNUMBER 외에도 특정 상황에서 유사한 목적을 달성할 수 있는 방법들이 있습니다.
각 방법의 장단점을 비교하여 최적의 선택을 할 수 있도록 도와드리겠습니다.
1. ISERROR / ISERR 함수 (오류 값 검사)
ISERROR는 모든 종류의 오류 값(#DIV/0!, #N/A, #VALUE!, 등)에 대해 TRUE를 반환합니다. ISERR는 #N/A를 제외한 오류 값에 대해 TRUE를 반환합니다.
- ISNUMBER와의 관계: ISNUMBER는 '숫자' 여부를, ISERROR는 '오류' 여부를 검사합니다. 서로 보완적인 관계에 있습니다.
- 장점: 특정 계산 결과가 오류인지 아닌지 빠르게 확인할 때 직관적입니다.
- 단점: 숫자인지 여부를 직접적으로 검사하지는 못합니다.
2. ISTEXT 함수 (텍스트 값 검사)
ISTEXT는 주어진 값이 텍스트인지 여부를 검사하여 TRUE 또는 FALSE를 반환합니다.
- ISNUMBER와의 관계: ISNUMBER와 상반되는 역할을 합니다. ISNUMBER가 FALSE를 반환한다고 해서 반드시 ISTEXT가 TRUE를 반환하는 것은 아닙니다 (예: 공백, 오류 값).
- 장점: 텍스트 데이터만을 필터링하거나 처리할 때 유용합니다.
- 단점: 숫자인지 여부를 직접 검사하지는 못합니다.
3. 이중 마이너스 (--) 또는 산술 연산자 (*1, +0)
이중 마이너스(--)는 논리 값 (TRUE/FALSE)이나 숫자로 변환 가능한 텍스트를 숫자로 강제 변환합니다. *1 또는 +0도 유사한 효과를 냅니다.
- ISNUMBER와의 관계: ISNUMBER는 '숫자 여부'를 확인하는 논리 함수인 반면, --나 *1은 '숫자로 변환 시도'를 하는 연산자입니다. 만약 변환이 불가능하면 VALUE 오류가 발생합니다.
- 장점: 간단하고 간결하게 텍스트 숫자를 실제 숫자로 변환할 수 있습니다. 배열 수식에서 강력합니다.
- 단점: 변환이 불가능한 텍스트가 있을 경우 오류를 발생시킵니다. 단순히 숫자인지 확인하는 용도로는 ISNUMBER가 더 안전합니다.
언제 무엇을 사용할까?
- "이 값이 숫자인지 아닌지" 순수하게 여부만 알고 싶다면: ISNUMBER
- "이 값을 숫자로 만들고 싶은데, 안 되면 오류라도 내줘" : -- 또는 *1 (일반적으로 SUMPRODUCT 등에서)
- "이 값이 오류인지 아닌지" : ISERROR
- "이 값이 텍스트인지 아닌지" : ISTEXT
최상급 실무 예제: 복합 데이터 유효성 검사 및 처리
시나리오:
고객으로부터 상품 주문 목록을 받았는데, '주문 수량' 컬럼(B열)에 숫자 외에 텍스트나 공백, 오류 값(데이터 입력 실수)이 섞여 있습니다. 우리는 이 데이터에서 정확히 숫자(또는 날짜)로 입력된 주문 수량만 집계하고, 그렇지 않은 값들은 특정 메시지로 표시하거나 필터링하고 싶습니다.
셀 | A열 (상품명) | B열 (주문 수량) |
1 | 상품 A | 10 |
2 | 상품 B | 5 |
3 | 상품 C | 품절 |
4 | 상품 D | 8 |
5 | 상품 E | (공백) |
6 | 상품 F | #N/A |
7 | 상품 G | 2025-07-10 |
8 | 상품 H | 텍스트입력 |
목표:
- B열의 값이 유효한 숫자(또는 날짜)일 경우 해당 값을, 그렇지 않으면 "확인필요" 메시지를 C열에 표시합니다.
- B열에서 실제 '주문 수량' (숫자)인 값들의 총합을 계산합니다.
예제 1: 데이터 유효성 확인 및 메시지 출력
C열에 다음 수식을 입력합니다:
=IF(ISNUMBER(B1), B1, "확인필요")
설명:
- ISNUMBER(B1): B1 셀의 값이 숫자인지 검사합니다.
- IF 함수: 만약 ISNUMBER(B1)이 TRUE (숫자)라면 B1 셀의 값을 그대로 가져오고, FALSE (숫자가 아님)라면 "확인필요"라는 텍스트를 출력합니다.
결과 (C열):
C열 (결과) |
10 |
5 |
확인필요 |
8 |
확인필요 |
확인필요 |
45851 (날짜의 숫자 값)
|
확인필요 |
참고: 2025-07-10은 엑셀 내부적으로 45851이라는 숫자로 저장되므로, ISNUMBER는 TRUE를 반환하고, IF 함수는 해당 숫자를 그대로 가져옵니다. 만약 날짜는 제외하고 순수한 정수/실수만 처리하고 싶다면 추가 조건이 필요합니다.
예제 2: 유효한 숫자 값만 합계 계산
이제 B열에서 정확히 숫자(또는 날짜)로 입력된 값들의 총합을 계산해 봅시다. 여기서는 SUMPRODUCT 함수와 ISNUMBER를 조합하는 것이 가장 강력하고 효율적입니다.
수식:
=SUMPRODUCT( --(ISNUMBER(B1:B8)) * B1:B8 )
설명:
- ISNUMBER(B1:B8): B1부터 B8까지 각 셀이 숫자인지 여부를 검사하여 TRUE/FALSE로 구성된 논리 배열을 반환합니다.
예: {TRUE;TRUE;FALSE;TRUE;FALSE;FALSE;TRUE;FALSE} - --(ISNUMBER(B1:B8)): 이중 마이너스(--)를 사용하여 위 논리 배열을 1과 0으로 구성된 숫자 배열로 변환합니다.
예: {1;1;0;1;0;0;1;0} - * B1:B8: 변환된 1/0 배열에 원본 B1:B8 배열을 곱합니다.
1 * 숫자는 해당 숫자를, 0 * 어떤 값은 0을 반환합니다.
0 * "품절"이나 0 * #N/A는 0이 됩니다. (여기서 SUMPRODUCT의 강점이 나타납니다. 일반 SUM 함수와는 다르게 오류를 발생시키지 않고 0으로 처리합니다.)
예: {10;5;0;8;0;0;45851;0} - SUMPRODUCT(...): 최종적으로 곱해진 배열의 모든 숫자를 합산합니다.
결과:
10 + 5 + 0 + 8 + 0 + 0 + 45851 + 0 = 45874
이 결과는 유효한 숫자 값(날짜 포함)만 정확하게 합산된 것을 보여줍니다. 만약 날짜를 제외하고 순수한 숫자만 합산하고 싶다면, ISNUMBER와 함께 ISTEXT 등을 조합하거나, CELL("type", ...) 함수를 활용할 수 있습니다.
응용: 숫자이면서 동시에 특정 범위의 값만 합산
만약 10보다 크거나 같은 주문 수량만 합산하고 싶다면?
=SUMPRODUCT( (ISNUMBER(B1:B8)) * (B1:B8>=10) * B1:B8 )
ISNUMBER 조건과 B1:B8>=10 조건을 *로 연결하여 두 조건을 모두 만족하는 경우만 합산하게 만듭니다.
ISNUMBER 함수는 엑셀에서 데이터의 타입을 검사하는 데 매우 유용한 함수입니다.
특히 다른 논리 함수나 SUMPRODUCT, IF 등과 결합될 때 그 진가를 발휘하며, 데이터 정제와 유효성 검사, 복잡한 조건부 계산에서 필수적인 도구입니다.
이중 마이너스와 같은 변환 연산자와의 차이를 이해하고 상황에 맞는 함수를 선택하여 여러분의 엑셀 작업을 더욱 효율적이고 견고하게 만들어 보시길 바랍니다.
'엑셀' 카테고리의 다른 글
엑셀에서 날짜 입력 시 자동으로 요일 표시하는 방법 (0) | 2025.07.12 |
---|---|
엑셀 필터 안되는 이유 병합된 셀, 숨겨진 행/열, 빈행/열, 시트보호 등 (0) | 2025.07.10 |
엑셀 WEEKNUM 함수 주차 계산 Week Number (0) | 2025.07.08 |
엑셀 수식입력줄, 빠른실행도구모음, 리본메뉴 복구, 사용자 편의 설정 (2) | 2025.07.07 |
엑셀 XLOOKUP, FILTER, SORT로 데이터 관리 (0) | 2025.07.06 |