목차
와일드카드 텍스트로 IF 문을 작성하려고 하지만 매번 실패합니까? 문제는 수식이 아니라 함수 자체에 있습니다. Excel IF는 와일드카드 문자를 지원하지 않습니다. 그러나 부분 텍스트 일치를 위해 작동하도록 하는 방법이 있으며 이 자습서에서 방법을 알려줍니다.
Excel에서 부분 또는 퍼지 일치를 수행하려는 경우 가장 확실한 해결책은 다음과 같습니다. 와일드카드를 사용합니다. 그러나 사용해야 하는 특정 함수가 와일드카드 문자를 지원하지 않는 경우에는 어떻게 해야 합니까? 슬프게도 Excel IF는 그러한 기능 중 하나입니다. COUNTIF, SUMIF 및 AVERAGEIFS와 같은 다른 "조건부" 함수가 와일드카드와 완벽하게 잘 작동한다는 점을 고려하면 특히 실망스럽습니다.
다행히도 창의적인 Excel 사용자를 막을 수 있는 장애물은 아닙니다 :) IF를 결합하여 다른 기능을 사용하면 부분 일치를 강제로 평가하고 Excel IF 와일드카드 수식에 대한 좋은 대안을 얻을 수 있습니다.
와일드카드가 있는 Excel IF 함수가 작동하지 않는 이유
아래 샘플 테이블에서 첫 번째 열의 ID에 "A"가 포함되어 있는지 확인한다고 가정합니다. 찾은 경우 B열에 "예"를 표시하고 그렇지 않은 경우 "아니오"를 표시합니다.
와일드카드 텍스트를 논리 테스트에 포함하는 것이 쉬운 해결책인 것 같습니다.
=IF(A2="*a*","Yes", "No")
하지만 아쉽게도 잘 되지 않습니다. 수식은 "A"가 포함된 셀을 포함하여 모든 셀에 대해 "아니오"를 반환합니다.
왜와일드카드 IF 문이 실패합니까? 모든 모양에서 Excel은 등호 또는 기타 논리 연산자와 함께 사용되는 와일드카드를 인식하지 못합니다. 와일드카드를 지원하는 함수 목록을 자세히 살펴보면 해당 구문에서 와일드카드 텍스트가 다음과 같이 인수에 직접 표시된다고 가정한다는 것을 알 수 있습니다.
=COUNTIF(A2:A10, "*a*")
Excel IF에 부분 텍스트 포함
와일드카드 IF 수식이 실패하는 이유를 알았으니 이제 작동시키는 방법을 알아봅시다. 이를 위해 IF의 논리적 테스트에 와일드카드를 허용하는 함수, 즉 COUNTIF 함수를 삽입합니다.
IF(COUNTIF( cell, "* text* "), value_if_true, value_if_false)이 방법을 사용하면 IF는 와일드카드를 이해하는 데 문제가 없으며 "A" 또는 "a"가 포함된 셀을 완벽하게 식별합니다(COUNTIF는 대소문자를 구분하지 않기 때문).
=IF(COUNTIF(A2, "*a*"),"Yes", "No")
이 수식은 B2 또는 행 2의 다른 셀로 이동한 다음 필요한 만큼 많은 셀로 드래그할 수 있습니다.
이 솔루션은 특정 패턴 의 문자열을 찾는 데에도 사용할 수 있습니다. 하이픈으로 구분된 2개의 문자로 구성된 2개의 그룹으로 구성된 ID만 유효하다고 가정하면 "??-??"를 사용할 수 있습니다. 식별을 위한 와일드카드 문자열:
=IF(COUNTIF(A2, "??-??"), "Valid", "")
이 공식 작동 방식:
IF, 지정된 와일드카드와 일치하는 셀 수를 세는 COUNTIF 함수를 사용합니다.끈. 기준 범위가 단일 셀(A2)이므로 결과는 항상 1(일치 항목이 있음) 또는 0(일치 항목이 없음)입니다. 1이 TRUE에 해당하고 0이 FALSE에 해당하는 경우 수식은 개수가 1일 때 "Valid"(value_if_true)를 반환하고 개수가 0일 때 빈 문자열(value_if_false)을 반환합니다.
부분에 대한 ISNUMBER SEARCH 수식 일치
부분 텍스트 일치에 대해 Excel IF가 작동하도록 하는 또 다른 방법은 논리 테스트에 FIND 또는 SEARCH 함수를 포함하는 것입니다. 차이점은 FIND는 대소문자를 구분하지만 SEARCH는 구분하지 않는다는 것입니다.
따라서 소문자와 대문자를 같은 문자로 취급할지 아니면 다른 문자로 취급할지에 따라 다음 공식 중 하나가 적용됩니다.
대소문자를 구분하지 않는 부분 일치 공식:
IF(ISNUMBER(SEARCH(" text", cell)), value_if_true, value_if_false )대소문자 구분 부분 일치 공식:
IF(ISNUMBER(FIND(" text", cell)), value_if_true, value_if_false )두 기능 모두 '셀 포함' 유형의 일치를 수행하도록 설계되었으므로 이 경우 와일드카드가 실제로 필요하지 않습니다.
예를 들어 'A' 또는 'a'가 포함된 ID를 검색하려면 , 수식은 다음과 같습니다.
=IF(ISNUMBER(SEARCH("A", A2)), "Yes", "No")
대문자 "A"만 검색하고 "a"는 무시하려면 수식은 다음과 같습니다.
=IF(ISNUMBER(FIND("A", A2)), "Yes", "No")
아래 스크린샷의 B6에서 결과의 차이를 관찰할 수 있습니다.
이 공식 작동 방식:
의 심장수식에는 ISNUMBER와 SEARCH(또는 FIND)의 조합이 있습니다.
ISNUMBER(SEARCH("A", A2))
SEARCH 함수는 지정된 텍스트(이 예에서는 "A")를 찾고 내 위치를 반환합니다. A2의 문자열. 텍스트를 찾을 수 없으면 #VALUE 오류가 반환됩니다. SEARCH와 FIND는 모두 "셀 포함" 유형의 일치를 수행하도록 설계되었으므로 이 경우에는 와일드카드가 실제로 필요하지 않습니다.
ISNUMBER 함수는 숫자를 TRUE로 변환하고 오류를 포함한 다른 모든 값을 FALSE로 변환합니다. . 논리적 값은 IF의 논리적 테스트로 직접 이동합니다. 우리의 경우 A2에는 "A"가 포함되어 있으므로 ISNUMBER는 TRUE를 반환합니다.
IF(TRUE, "Yes", "No")
결과적으로 IF는 value_if_true 인수에 대해 설정된 값을 반환합니다. "예".
와일드카드가 있는 Excel IF OR 문
와일드카드 텍스트 문자열 중 하나를 포함하는 셀을 식별해야 합니까? 이 경우 고전적인 IF OR 문을 위에서 설명한 COUNTIF 또는 ISNUMBER SEARCH 공식과 결합할 수 있습니다.
예를 들어 A2에서 "aa" OR "bb"를 검색하려면 대소문자를 무시하고 " 예"가 있으면 다음 수식 중 하나를 사용합니다.
=IF(OR(ISNUMBER(SEARCH("aa", A2)), ISNUMBER(SEARCH("bb", A2))), "Yes", "")
또는
=IF(OR(COUNTIF(A2, "*aa*"), COUNTIF(A2, "*bb*")), "Yes", "")
두 개의 COUNTIF 함수를 더해도 작동합니다. 이 경우 더하기 기호는 OR 연산자처럼 작동합니다.
=IF(COUNTIF(A3, "*aa*") + COUNTIF(A3, "*bb*"), "Yes", "")
수식에 와일드카드 문자열을 하드코딩하는 대신 다음과 같이 별도의 셀(예: D2 및 F2)에 입력할 수 있습니다. 아래 스크린샷에서. 이러한 점에 유의하십시오.수식이 아래 셀에 올바르게 복사되도록 셀 참조는 $ 기호로 잠겨 있습니다. , 그러나 3개 이상을 검색하는 경우 너무 길어집니다. 이 경우 작업에 다르게 접근하는 것이 합리적입니다.
배열 상수의 SEARCH 함수에 여러 하위 문자열을 제공하고 반환된 숫자를 세고 결과가 0보다 큰지 확인합니다. 적어도 하나의 하위 문자열이 있는 경우):
=IF(COUNT(SEARCH({"aa","bb"}, A2))>0, "Yes", "")
이렇게 하면 보다 간결한 수식으로 정확히 동일한 결과를 얻을 수 있습니다.
와일드카드가 있는 Excel IF AND 수식
셀에 두 개 이상의 다른 하위 문자열이 포함되어 있는지 확인하려는 경우 가장 쉬운 방법은 논리 테스트를 위해 와일드카드와 함께 COUNTIFS 함수를 사용하는 것입니다.
'b'와 '2'가 모두 포함된 A열의 셀을 찾으려고 한다고 가정합니다. 완료하려면 COUNTIFS의 기준에 "*b*" 및 "*2*"를 사용하고 기준 범위에 A2를 사용합니다.
=IF(COUNTIFS(A2, "*b*", A2, "*2*"), "Yes", "")
또 다른 방법은 IF AND 공식을 함께 사용하는 것입니다. with ISNUMBER SEARCH:
=IF(AND(ISNUMBER(SEARCH("b", A2)), ISNUMBER(SEARCH("2", A2))), "Yes", "")
이 수식에는 와일드카드 문자를 포함하지 않지만 두 개의 와일드카드 문자열("*b*" 및 "*2*")을 검색하는 것처럼 작동합니다. ) 같은 셀에 있습니다.
물론 사전 정의된 셀(여기서는 D2 및 F2)에 검색 값을 입력하고수식에 대한 셀 참조:
=IF(AND(ISNUMBER(SEARCH($D$2, A2)), ISNUMBER(SEARCH($F$2, A2))), "Yes", "")
가능할 때마다 보다 간결한 수식을 사용하려는 경우 배열 상수 방식을 사용하는 것이 좋습니다. IF COUNT SEARCH 수식은 이전 예제와 매우 유사하지만 이번에는 두 하위 문자열이 모두 A2에 나타나야 하므로 카운트가 2인지 확인합니다.
=IF(COUNT(SEARCH({"b","2"}, A2))=2, "Yes", "")
엑셀에서 IF 문에 와일드카드를 사용하는 주요 방법입니다. 다른 솔루션을 알고 있다면 댓글로 경험을 공유하면 다른 사용자가 확실히 감사할 것입니다. 읽어 주셔서 감사합니다. 다음 주에 저희 블로그에서 뵙기를 바랍니다!
다운로드용 실습 워크북
Excel IF 와일드카드 수식 예제(.xlsx 파일)