Menu

엑셀 와일드카드: COUNTIF, VLOOKUP에서 *, ?, ~ 쓰기

엑셀 조건에서 *는 글자 수와 상관없는 아무 문자를, ?는 정확히 한 글자를 뜻합니다: =COUNTIF(A2:A7,"*apple*")는 apple이 들어 있는 셀을 셉니다. ~는 와일드카드를 일반 문자로 되돌립니다.

이 페이지의 모든 시트는 실제로 동작합니다. 숫자나 수식을 바꾸면 다시 계산됩니다.

엑셀에는 조건과 조회에 쓰는 와일드카드 문자가 세 개 있습니다. *는 글자가 없는 경우를 포함해 글자 수와 상관없이 일치하고, ?는 정확히 한 글자와 일치하며, ~는 다음에 오는 *나 ?를 일반 문자로 되돌립니다. =COUNTIF(A2:A7,"*apple*")는 어디에든 apple이 들어 있는 셀을 셉니다.

와일드카드로 세기
D2
ABCD
1ProductPatternCount
2Apple juice*apple*4
3Green appleapple*2
4Pineapple*juice2
5Orange juice?????0
6Pear*e4
7Apples
셀을 클릭하면 수식이 보입니다. 숫자나 수식을 바꾸면 시트가 다시 계산됩니다.
  • *apple*는 apple 포함입니다. Pineapple도 세어지므로 4개가 일치합니다.
  • apple*는 apple로 시작합니다. Apple juice와 Apples만 해당합니다. COUNTIF는 대소문자를 무시합니다.
  • *juice는 juice로 끝납니다.
  • ?????는 정확히 다섯 글자입니다. 이 제품 중 다섯 글자인 것이 없으므로 0입니다. A6에 Peach를 입력하면 1이 됩니다.
  • *e는 e로 끝납니다.

C열에 *an*나 P* 같은 패턴을 직접 입력하면 개수가 갱신됩니다.

VLOOKUP과 XLOOKUP의 부분 일치

VLOOKUP은 정확히 일치 모드(마지막 인수가 FALSE)에서 와일드카드를 받습니다. 수식 안에서 값에 와일드카드를 합치면 D2에는 첫 글자만 넣으면 됩니다:

첫 글자로 조회하기
E2
ABCDE
1ProductPriceStarts withPrice
2Apple juice3.5Pin4
3Green apple1.24
4Pineapple4
5Orange juice3.2
6Pear0.9
셀을 클릭하면 수식이 보입니다. 숫자나 수식을 바꾸면 시트가 다시 계산됩니다.

두 수식 모두 Pineapple을 찾습니다. D2를 juice로 바꿔 보세요. VLOOKUP의 패턴 juice*는 텍스트가 juice로 시작해야 하므로 #N/A를 반환하고, XLOOKUP의 패턴 *juice*는 그것이 들어 있는 첫 번째 제품인 Apple juice를 찾습니다. 다른 정확히 일치와 마찬가지로 와일드카드 조회도 맞는 첫 번째 행을 반환하므로 패턴을 충분히 구체적으로 만드세요.

XLOOKUP은 다섯 번째 인수인 match_mode가 2일 때만 *와 ?를 와일드카드로 취급합니다. 이 인수가 없으면 별표를 문자 그대로 찾습니다. MATCH는 match_type 0에서, XMATCH는 XLOOKUP처럼 match_mode 2에서 와일드카드를 받습니다. 나머지 인수는 VLOOKUP을 참고하세요.

phone 제품 세기
D2
ABCD
1ProductPhone products
2Smartphone
3Headphones
4Phone stand
5Laptop bag
6Charger
셀을 클릭하면 수식이 보입니다. 숫자나 수식을 바꾸면 시트가 다시 계산됩니다.

직접 해 보세요: D2에서 이름 어디에든 phone이 들어 있는 제품의 개수를 세세요.

와일드카드로 합계와 평균 구하기

조건을 받는 함수는 모두 같은 방식으로 조건을 읽으므로 같은 패턴이 SUMIF, SUMIFS, AVERAGEIF, AVERAGEIFS, MAXIFS, MINIFS에서도 동작합니다:

이름 일부로 합계 구하기
E2
ABCDE
1RegionSalesPatternTotal
2North-East120North*285
3North-West95*West155
4South80?????150
5South-West60
6East110
7North70
셀을 클릭하면 수식이 보입니다. 숫자나 수식을 바꾸면 시트가 다시 계산됩니다.

*는 아무것도 없는 것과도 일치하므로 North*는 North 자체를 포함해 North로 시작하는 모든 지역을 더합니다. ?????는 정확히 다섯 글자인 지역인 South와 North를 더합니다.

모든 West 지역의 매출
E2
ABCDE
1RegionSalesWest total
2North-East120
3North-West95
4South80
5South-West60
6East110
7North70
셀을 클릭하면 수식이 보입니다. 숫자나 수식을 바꾸면 시트가 다시 계산됩니다.

직접 해 보세요: E2에서 이름이 West로 끝나는 모든 지역의 매출 합계를 구하세요.

~로 실제 별표나 물음표 찾기

실제 *나 ?가 들어 있는 텍스트를 세려면 앞에 물결표를 붙이세요. 물결표 자체는 ~~로 씁니다.

와일드카드 이스케이프
C2
ABC
1NoteCount
2Rated 5*1
3Why?1
4Done4
55 stars
셀을 클릭하면 수식이 보입니다. 숫자나 수식을 바꾸면 시트가 다시 계산됩니다.

C2는 실제 별표가 들어 있는 셀(A2만)을, C3은 물음표가 들어 있는 셀을 셉니다. C4는 반대쪽을 보여 줍니다. "*"만 쓰면 어떤 텍스트와도 일치하므로 모든 텍스트 셀을 세며, 여기서는 4입니다. 숫자와 빈 셀은 건너뛰므로 COUNTIF(range,"*")는 텍스트 셀을 세는 흔한 방법입니다.

와일드카드를 받는 함수

*, ?, ~를 받음받지 않음
COUNTIF, COUNTIFS, SUMIF, SUMIFS, AVERAGEIF, AVERAGEIFS, MAXIFS, MINIFS=, <> 등 비교 연산자
FALSE를 쓰는 VLOOKUP과 HLOOKUPIF 단독
0을 쓰는 MATCHFIND
match_mode 2를 쓰는 XLOOKUP과 XMATCHFILTER, UNIQUE, SORT
SEARCHSUBSTITUTE, TEXTBEFORE, TEXTAFTER
찾기 및 바꾸기(Ctrl+H), 필터 검색 상자

SEARCH는 수식 안에서 와일드카드를 받습니다: 엑셀에서 =SEARCH("b?d","a bad day")는 3을 반환합니다(자세한 내용은 FIND와 SEARCH). FILTER에서는 패턴 대신 ISNUMBER(SEARCH(...))를 조건으로 쓰세요.

흔한 실수: = 뒤의 와일드카드

= 연산자는 와일드카드를 읽지 않습니다. =A2="*apple*"는 A2에 *apple*라는 일곱 글자가 들어 있는지 묻습니다. 엑셀에서 A2에 Green apple이 있을 때:

=A2="*apple*"                    FALSE
=IF(A2="*apple*","yes","no")     no

대신 셀 하나에 대해 1이나 0을 반환하는 COUNTIF에 검사를 넣거나 SEARCH를 쓰세요:

와일드카드로 셀 하나 검사하기
B2
ABC
1ProductCOUNTIF testSEARCH test
2Green applecontains applecontains apple
3Pearnono
셀을 클릭하면 수식이 보입니다. 숫자나 수식을 바꾸면 시트가 다시 계산됩니다.

IF는 COUNTIF의 1을 TRUE로, 0을 FALSE로 취급합니다. SEARCH 방법은 와일드카드가 아예 필요 없습니다. SEARCH는 이미 셀의 어디에서든 텍스트를 찾기 때문입니다.

자주 묻는 질문

엑셀의 와일드카드 문자는 무엇인가요?

*는 글자가 없는 경우를 포함해 글자 수와 상관없이 일치하고, ?는 정확히 한 글자와 일치하며, *, ?, ~ 앞의 ~는 그 문자를 일반 문자로 만듭니다. "*apple*"는 apple 포함, "A*"는 A로 시작, "???"는 정확히 세 글자를 뜻합니다.

VLOOKUP에서 와일드카드를 쓰려면 어떻게 하나요?

찾는 값에 와일드카드를 합치고 정확히 일치를 씁니다: =VLOOKUP(E2&"*",A2:B6,2,FALSE)는 E2로 시작하는 첫 번째 항목을 찾습니다. XLOOKUP에서는 match_mode를 2로 지정하세요: =XLOOKUP("*"&E2&"*",A2:A6,B2:B6,"none",2).

IF 수식에서 와일드카드가 동작하지 않는 이유는 무엇인가요?

= 비교는 와일드카드를 이해하지 못하므로 =IF(A2="*apple*",...)는 텍스트 *apple* 그 자체와만 일치합니다. =IF(COUNTIF(A2,"*apple*"),"Yes","No")나 =IF(ISNUMBER(SEARCH("apple",A2)),"Yes","No")를 쓰세요.

별표가 들어 있는 셀을 세려면 어떻게 하나요?

앞에 물결표를 붙입니다: =COUNTIF(A2:A10,"*~**"). 처음과 마지막 *는 와일드카드이고, ~*는 실제 별표입니다.

Coddy 프로그래밍 언어 일러스트

Coddy로 코딩 배우기

시작하기