Excel에서 특수 문자/원치 않는 문자를 삭제하는 방법

  • 이 공유
Michael Brown

이 글에서는 텍스트 문자열에서 특정 문자를 삭제하는 방법과 여러 셀에서 원치 않는 문자를 한 번에 제거하는 방법에 대해 알아봅니다.

다른 곳에서 Excel로 데이터를 가져올 때, 많은 특수 문자가 워크시트로 이동할 수 있습니다. 더욱 실망스러운 것은 일부 문자가 보이지 않아 텍스트 문자열 앞, 뒤 또는 내부에 추가 공백이 생성된다는 것입니다. 이 자습서는 이러한 모든 문제에 대한 솔루션을 제공하여 셀별로 데이터를 살펴보고 원치 않는 문자를 수동으로 제거해야 하는 수고를 덜어줍니다.

    Excel 셀에서 특수 문자 제거

    셀에서 특정 문자를 삭제하려면 가장 간단한 형식인 SUBSTITUTE 함수를 사용하여 빈 문자열로 바꿉니다.

    SUBSTITUTE( cell, char, "")

    예를 들어 A2에서 물음표를 제거하려면 B2의 공식은 다음과 같습니다.

    =SUBSTITUTE(A2, "?", "")

    키보드에 없는 문자를 복사하여 원래 셀의 수식에 붙여넣을 수 있습니다.

    예를 들어 거꾸로 된 물음표를 제거하는 방법은 다음과 같습니다.

    =SUBSTITUTE(A2, "¿", "")

    하지만 원하지 않는 문자가 보이지 않는 거나 제대로 복사되지 않으면 수식에 어떻게 입력합니까? 간단히 CODE 함수를 사용하여 코드 번호를 찾으십시오.

    이 경우 원하지 않는 문자("¿")가 셀 A2의 마지막에 나오므로 조합을 사용하고 있습니다.CODE 및 RIGHT 함수 중 고유 코드 값인 191을 검색합니다.

    =CODE(RIGHT(A2))

    캐릭터의 코드를 받으면 해당 CHAR를 제공합니다. 위의 일반 공식에 대한 기능. 데이터 세트의 공식은 다음과 같습니다.

    =SUBSTITUTE(A2, CHAR(191),"")

    참고. SUBSTITUTE 함수는 대소문자를 구분 하므로 소문자와 대문자를 다른 문자로 취급합니다. 원치 않는 문자가 문자인 경우 유의하시기 바랍니다.

    문자열에서 여러 문자 삭제

    이전 기사 중 하나에서 Excel의 여러 SUBSTITUTE 함수를 서로 중첩하여 문자열에서 특정 문자를 제거하는 방법을 살펴보았습니다. 동일한 접근 방식을 사용하여 원치 않는 두 개 이상의 문자를 한 번에 제거할 수 있습니다.

    SUBSTITUTE(SUBSTITUTE(SUBSTITUTE( cell , char1 , ""), char2 , ""), char3 , "")

    예를 들어 A2의 텍스트 문자열에서 일반적인 느낌표와 물음표뿐만 아니라 반전된 느낌표를 제거하려면 다음 수식을 사용합니다.

    =SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2, "!", ""), "¡", ""), "?", ""), "¿", "")

    CHAR 함수를 사용하여 동일한 작업을 수행할 수 있습니다. 여기서 161은 "¡"의 문자 코드이고 191은 "¿"의 문자 코드입니다.

    =SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A3, "!", ""), "?", ""), CHAR(161), ""), CHAR(191), "")

    중첩된 SUBSTITUTE 함수는 적당한 수의 문자에 대해서는 잘 작동하지만 제거할 문자가 수십 개인 경우 수식이 너무 길어 관리하기 어려워집니다. 다음 예는더 간결하고 우아한 솔루션.

    원치 않는 모든 문자를 한 번에 제거

    이 솔루션은 Microsoft 365용 Excel에서만 작동합니다

    아마도 아시다시피, Excel 365에는 재귀적으로 계산하는 함수를 포함하여 고유한 함수를 만들 수 있는 특수 함수가 있습니다. 이 새 기능의 이름은 LAMBDA이며 위에 링크된 자습서에서 자세한 내용을 확인할 수 있습니다. 아래에서 몇 가지 실용적인 예를 통해 개념을 설명하겠습니다.

    원치 않는 문자를 제거 하는 사용자 지정 LAMBDA 함수는 다음과 같습니다.

    =LAMBDA(string, chars, IF(chars"", RemoveChars(SUBSTITUTE(string, LEFT(chars, 1), ""), RIGHT(chars, LEN(chars) -1)), string))

    워크시트에서 이 함수를 사용하려면 먼저 이름을 지정해야 합니다. 이를 위해 Ctrl + F3을 눌러 이름 관리자 를 연 다음 새 이름 을 다음과 같이 정의합니다.

    1. 이름 상자에 함수 이름 입력: RemoveChars .
    2. 범위를 통합 문서 로 설정합니다.
    3. 참조 상자에 위 수식을 붙여넣습니다.
    4. 선택적으로 설명 상자에 매개변수에 대한 설명을 입력합니다. 셀에 수식을 입력하면 매개변수가 표시됩니다.
    5. 새 함수를 저장하려면 확인 을 클릭하세요.

    자세한 지침은 다음을 참조하세요. 맞춤형 LAMBDA 함수의 이름을 지정하는 방법.

    함수에 이름이 지정되면 기본 수식처럼 참조할 수 있습니다.

    사용자 관점에서 , 사용자 지정 함수의 구문은 다음과 같이 간단합니다.this:

    RemoveChars(string, chars)

    여기서:

    • String - 원래 문자열이거나 문자열을 포함하는 셀/범위에 대한 참조( s).
    • Chars - 삭제할 문자. 텍스트 문자열이나 셀 참조로 나타낼 수 있습니다.

    편의상 D2와 같은 일부 셀에 원하지 않는 문자를 입력합니다. A2에서 해당 문자를 제거하려면 수식은 다음과 같습니다.

    =RemoveChars(A2, $D$2)

    수식이 올바르게 작동하려면 다음 사항에 유의하십시오.

    • D2에서 , 문자는 공백도 제거하지 않으려는 경우가 아니면 공백 없이 나열됩니다.
    • 특수 문자를 포함하는 셀의 주소는 $ 기호($D$2)로 잠겨 있어 참조가 변경되지 않도록 합니다. 수식을 아래 셀에 입력합니다.

    그런 다음 수식을 아래로 드래그하면 D2에 나열된 모든 문자가 셀 A2에서 A6까지 삭제됩니다.

    단일 수식으로 여러 셀을 정리하려면 첫 번째 인수에 A2:A6 범위를 제공합니다.

    =RemoveChars(A2:A6, D2)

    수식은 맨 위 셀에만 입력되므로 셀 좌표를 잠그는 것에 대해 걱정할 필요가 없습니다. 이 경우 상대 참조(D2)가 잘 작동합니다. 동적 배열 지원으로 인해 수식이 참조된 모든 셀에 자동으로 적용됩니다.

    미리 정의된 문자 집합 제거

    미리 정의된 문자 집합 삭제 여러 셀의 문자를 만들 수 있습니다.메인 RemoveChars 함수를 호출하고 두 번째 매개변수에 바람직하지 않은 문자를 지정하는 또 다른 LAMBDA. 예:

    특수 문자 를 삭제하기 위해 RemoveSpecialChars :

    =LAMBDA(string, RemoveChars(string, "?¿!¡*%#@^"))

    To라는 사용자 지정 함수를 만들었습니다. 숫자 제거 텍스트 문자열에서 RemoveNumbers :

    =LAMBDA(string, RemoveChars(string, "0123456789"))

    라는 이름의 함수를 하나 더 만들었습니다. 위의 두 함수는 모두 매우 쉽습니다. 하나의 인수(원래 문자열)만 필요하므로 사용합니다.

    A2에서 특수 문자 를 제거하려면 공식은 다음과 같습니다.

    =RemoveSpecialChars(A2)

    숫자만 삭제하려면:

    =RemoveNumbers(A2)

    이 기능의 작동 방식:

    본질적으로 RemoveChars 함수는 chars 목록을 순환하면서 한 번에 한 문자씩 제거합니다. 각 재귀 호출 전에 IF 함수는 나머지 문자를 확인합니다. chars 문자열이 비어 있지 않으면(chars"") 함수가 자신을 호출합니다. 마지막 문자가 처리되자마자 수식은 문자열 을 현재 형식으로 반환하고 종료합니다.

    자세한 수식 분석은 원하지 않는 문자를 제거하는 재귀 LAMBDA를 참조하세요.

    VBA로 특수 문자 제거

    모든 버전의 Excel에서 기능 작동

    LAMBDA 기능을 Excel에서 사용할 수 없는 경우 VBA로 유사한 기능을 만드는 것에서. 사용자 정의함수(UDF)는 두 가지 방법으로 작성할 수 있습니다.

    특수 문자를 삭제하는 사용자 지정 함수 재귀 :

    이 코드는 위에서 설명한 LAMBDA 함수의 논리를 에뮬레이트합니다.

    함수 RemoveUnwantedChars(str As String , chars As String ) If ( "" chars) Then str = Replace(str, Left(chars, 1), "" ) chars = Right(chars, Len(chars) - 1) RemoveUnwantedChars = RemoveUnwantedChars(str, chars) Else RemoveUnwantedChars = str End If End Function

    특수 문자를 제거하는 사용자 지정 함수 비재귀 :

    여기서 원하지 않는 문자를 1에서 Len(chars) 및 원래 문자열에서 찾은 항목을 아무것도 없는 것으로 바꿉니다. MID 함수는 원치 않는 문자를 하나씩 가져와서 바꾸기 함수에 전달합니다.

    함수 RemoveUnwantedChars(str As String , chars As String ) For index = 1 To Len(chars) str = Replace(str, Mid(chars, index, 1), "" ) Next RemoveUnwantedChars = str End Function

    How to insert VBA code in Excel에 설명된 대로 통합 문서에 위의 코드 중 하나를 삽입하면 사용자 지정 함수를 사용할 수 있습니다.

    새로운 사용자 정의 함수와 Lambda 정의 함수를 혼동하지 않기 위해 이름을 다르게 지정했습니다.

    RemoveUnwantedChars(string, chars)

    원래 문자열이 A2에 있고 반갑지 않은 문자가 D2에 있다고 가정하면 다음 공식을 사용하여 제거할 수 있습니다.

    = RemoveUnwantedChars(A2, $D$2)

    하드코딩된 사용자 지정 함수characters

    각 수식에 특수 문자를 제공하지 않으려면 코드에서 직접 지정할 수 있습니다.

    Function RemoveSpecialChars(str As String ) As String Dim chars As String Dim index As 긴 문자 = "?¿!¡*%#$(){}[]^&/\~+-" For index = 1 To Len(chars) str = Replace(str, Mid(chars, index, 1) , "" ) Next RemoveSpecialChars = str End Function

    위의 코드는 데모용입니다. 실제로 사용하려면 삭제하려는 모든 문자를 다음 줄에 포함해야 합니다.

    chars = "?¿!¡*%#$(){}[]^&/\~+-"

    이 사용자 지정 함수의 이름은 RemoveSpecialChars 이며 하나만 필요합니다. 인수 - 원래 문자열:

    RemoveSpecialChars(string)

    데이터 집합에서 특수 문자를 제거하기 위한 공식은 다음과 같습니다.

    =RemoveSpecialChars(A2)

    Excel에서 인쇄할 수 없는 문자 제거

    Microsoft Excel에는 인쇄할 수 없는 문자를 삭제하는 특수 기능인 CLEAN 기능이 있습니다. 기술적으로는 7비트 ASCII 세트(코드 0~31)에서 처음 32자를 제거합니다.

    예를 들어 A2에서 인쇄할 수 없는 문자 를 삭제하려면 다음 공식을 사용할 수 있습니다. :

    =CLEAN(A2)

    이렇게 하면 인쇄되지 않는 문자가 제거되지만 텍스트 앞/뒤 및 단어 사이의 공백은 남습니다.

    To 여분의 공백 을 제거하고 CLEAN 수식을 TRIM 함수로 감싸십시오.

    =TRIM(CLEAN(A2))

    이제 모든 선행 및후행 공백은 제거되고 중간 공백은 단일 공백 ​​문자로 줄어듭니다.

    안의 모든 공백 을 완전히 삭제하려는 경우 그런 다음 추가로 공백 문자(코드 번호 32)를 빈 문자열로 대체합니다.

    =TRIM(CLEAN((SUBSTITUTE(A2, CHAR(32), ""))))

    일부 공백 또는 기타 보이지 않는 문자가 당신의 워크시트? 즉, 이러한 문자는 유니코드 문자 집합에서 다른 값을 가집니다.

    예를 들어 줄바꿈하지 않는 공백 ( )의 문자 코드는 160이며 다음 공식을 사용하여 제거할 수 있습니다.

    =SUBSTITUTE(A2, CHAR(160)," ")

    인쇄되지 않는 특정 문자 를 지우려면 먼저 해당 코드 값을 찾아야 합니다. 자세한 지침 및 수식 예는 인쇄되지 않는 특정 문자를 제거하는 방법입니다.

    Ultimate Suite로 특수 문자 삭제

    Microsoft 365용 Excel 지원, Excel 2019 - 2010

    이 마지막 예에서는 Excel에서 특수 문자를 제거하는 가장 쉬운 방법을 보여 드리겠습니다. Ultimate Suite가 설치된 상태에서 다음 작업을 수행해야 합니다.

    1. Ablebits Data 탭의 텍스트 그룹에서 을 클릭합니다. 제거 > 문자 제거 .

  • 추가 기능 창에서 소스 범위를 선택하고 제거를 선택합니다. 문자 집합 을 선택하고 드롭다운 목록에서 원하는 옵션을 선택합니다( 기호 및 구두점 예).
  • 제거 버튼을 누르세요.
  • 곧 완벽한 결과를 얻을 수 있습니다:

    문제가 발생하더라도 걱정하지 마십시오. 기본적으로 이 워크시트 백업 상자가 선택되어 있으므로 워크시트의 백업 복사본이 자동으로 생성됩니다.

    제거 도구를 사용해 보고 싶으신가요? 평가판 링크는 바로 아래에 있습니다. 읽어 주셔서 감사합니다. 다음 주 블로그에서 뵙기를 바랍니다!

    사용 가능한 다운로드

    특수 문자 삭제 - 예제(.xlsm 파일)

    Ultimate Suite - 평가판 버전(.exe 파일)

    Michael Brown은 소프트웨어 도구를 사용하여 복잡한 프로세스를 단순화하려는 열정을 가진 열성적인 기술 애호가입니다. 기술 산업에서 10년 이상의 경험을 쌓은 그는 Microsoft Excel 및 Outlook은 물론 Google 스프레드시트 및 문서 도구에 대한 기술을 연마했습니다. Michael의 블로그는 자신의 지식과 전문 지식을 다른 사람과 공유하는 데 전념하며 따라하기 쉬운 팁과 생산성 및 효율성 향상을 위한 자습서를 제공합니다. 노련한 전문가이든 초보자이든 Michael의 블로그는 이러한 필수 소프트웨어 도구를 최대한 활용하기 위한 귀중한 통찰력과 실용적인 조언을 제공합니다.