엑셀에는 조건과 조회에 쓰는 와일드카드 문자가 세 개 있습니다. *는 글자가 없는 경우를 포함해 글자 수와 상관없이 일치하고, ?는 정확히 한 글자와 일치하며, ~는 다음에 오는 *나 ?를 일반 문자로 되돌립니다. =COUNTIF(A2:A7,"*apple*")는 어디에든 apple이 들어 있는 셀을 셉니다.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Product | Pattern | Count | |
| 2 | Apple juice | *apple* | 4 | |
| 3 | Green apple | apple* | 2 | |
| 4 | Pineapple | *juice | 2 | |
| 5 | Orange juice | ????? | 0 | |
| 6 | Pear | *e | 4 | |
| 7 | Apples |
*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에는 첫 글자만 넣으면 됩니다:
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Product | Price | Starts with | Price | |
| 2 | Apple juice | 3.5 | Pin | 4 | |
| 3 | Green apple | 1.2 | 4 | ||
| 4 | Pineapple | 4 | |||
| 5 | Orange juice | 3.2 | |||
| 6 | Pear | 0.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을 참고하세요.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Product | Phone products | ||
| 2 | Smartphone | |||
| 3 | Headphones | |||
| 4 | Phone stand | |||
| 5 | Laptop bag | |||
| 6 | Charger |
직접 해 보세요: D2에서 이름 어디에든 phone이 들어 있는 제품의 개수를 세세요.
와일드카드로 합계와 평균 구하기
조건을 받는 함수는 모두 같은 방식으로 조건을 읽으므로 같은 패턴이 SUMIF, SUMIFS, AVERAGEIF, AVERAGEIFS, MAXIFS, MINIFS에서도 동작합니다:
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Region | Sales | Pattern | Total | |
| 2 | North-East | 120 | North* | 285 | |
| 3 | North-West | 95 | *West | 155 | |
| 4 | South | 80 | ????? | 150 | |
| 5 | South-West | 60 | |||
| 6 | East | 110 | |||
| 7 | North | 70 |
*는 아무것도 없는 것과도 일치하므로 North*는 North 자체를 포함해 North로 시작하는 모든 지역을 더합니다. ?????는 정확히 다섯 글자인 지역인 South와 North를 더합니다.
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Region | Sales | West total | ||
| 2 | North-East | 120 | |||
| 3 | North-West | 95 | |||
| 4 | South | 80 | |||
| 5 | South-West | 60 | |||
| 6 | East | 110 | |||
| 7 | North | 70 |
직접 해 보세요: E2에서 이름이 West로 끝나는 모든 지역의 매출 합계를 구하세요.
~로 실제 별표나 물음표 찾기
실제 *나 ?가 들어 있는 텍스트를 세려면 앞에 물결표를 붙이세요. 물결표 자체는 ~~로 씁니다.
| A | B | C | |
|---|---|---|---|
| 1 | Note | Count | |
| 2 | Rated 5* | 1 | |
| 3 | Why? | 1 | |
| 4 | Done | 4 | |
| 5 | 5 stars |
C2는 실제 별표가 들어 있는 셀(A2만)을, C3은 물음표가 들어 있는 셀을 셉니다. C4는 반대쪽을 보여 줍니다. "*"만 쓰면 어떤 텍스트와도 일치하므로 모든 텍스트 셀을 세며, 여기서는 4입니다. 숫자와 빈 셀은 건너뛰므로 COUNTIF(range,"*")는 텍스트 셀을 세는 흔한 방법입니다.
와일드카드를 받는 함수
*, ?, ~를 받음 | 받지 않음 |
|---|---|
| COUNTIF, COUNTIFS, SUMIF, SUMIFS, AVERAGEIF, AVERAGEIFS, MAXIFS, MINIFS | =, <> 등 비교 연산자 |
| FALSE를 쓰는 VLOOKUP과 HLOOKUP | IF 단독 |
| 0을 쓰는 MATCH | FIND |
| match_mode 2를 쓰는 XLOOKUP과 XMATCH | FILTER, UNIQUE, SORT |
| SEARCH | SUBSTITUTE, 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를 쓰세요:
| A | B | C | |
|---|---|---|---|
| 1 | Product | COUNTIF test | SEARCH test |
| 2 | Green apple | contains apple | contains apple |
| 3 | Pear | no | no |
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,"*~**"). 처음과 마지막 *는 와일드카드이고, ~*는 실제 별표입니다.