본문 바로가기
컴퓨터 활용(한글, 오피스 등)/기타

엑셀_함수_중복 문자 삭제

by 3604 2022. 10. 4.
728x90

출처: https://ko.extendoffice.com/documents/excel/2133-excel-remove-duplicate-characters-in-ssortingng.html?PageSpeed=noscript&page_comment=1

셀 문자열에서 중복 문자 또는 단어를 제거하는 방법은 무엇입니까?

각 셀에 중복 문자 나 단어가 있고 중복을 제거하고 고유 한 문자 나 단어 만 남기고 싶다고 가정합니다. Excel에서이 문제를 어떻게 해결할 수 있습니까?

사용자 정의 함수로 텍스트 문자열의 중복 문자 제거

사용자 정의 함수를 사용하여 구두점으로 구분 된 중복 단어 제거


 사용자 정의 함수로 텍스트 문자열의 중복 문자 제거

텍스트 문자열 목록이있는 경우 다음 스크린 샷과 같이 중복 문자를 제거해야합니다. 여기에서 VBA 코드에 대해 이야기 할 수 있습니다.

1. 누르고 ALT + F11 키를 눌러 Microsoft Visual Basic for Applications 창.

2. 딸깍 하는 소리 끼워 넣다 > 모듈을 클릭하고 다음 코드를 모듈 창.

VBA 코드 : 셀에서 텍스트 문자열의 중복 문자 제거

Function RemoveDupes1(pWorkRng As Range) As String
'Updateby Extendoffice
Dim xValue As String
Dim xChar As String
Dim xOutValue As String
Set xDic = CreateObject("Scripting.Dictionary")
xValue = pWorkRng.Value
For i = 1 To VBA.Len(xValue)
    xChar = VBA.Mid(xValue, i, 1)
    If xDic.Exists(xChar) Then
    Else
        xDic(xChar) = ""
        xOutValue = xOutValue & xChar
    End If
Next
RemoveDupes1 = xOutValue
End Function
Function RemoveDupes1(pWorkRng As Range) As String
'Updateby Extendoffice
Dim xValue As String
Dim xChar As String
Dim xOutValue As String
Set xDic = CreateObject("Scripting.Dictionary")
xValue = pWorkRng.Value
For i = 1 To VBA.Len(xValue)
    xChar = VBA.Mid(xValue, i, 1)
    If xDic.Exists(xChar) Then
    Else
        xDic(xChar) = ""
        xOutValue = xOutValue & xChar
    End If
Next
RemoveDupes1 = xOutValue
End Function

  

3. 그런 다음이 코드를 저장하고 닫은 다음 워크 시트로 돌아가이 수식을 입력합니다. = removedupes1 (A2) (A2 중복을 제거하려는 데이터 셀입니다) 데이터 외에 빈 셀에 넣습니다 (스크린 샷 참조).

4. 그런 다음 채우기 핸들을이 수식을 적용 할 범위 셀로 드래그하면 모든 중복 문자가 각 셀에서 즉시 제거됩니다.


 사용자 정의 함수를 사용하여 구두점으로 구분 된 중복 단어 제거

셀에 특정 문장 부호로 구분 된 단어가있는 경우 원하는대로 중복 단어를 제거 할 수도 있습니다. 다음 단계를 따르십시오.

1. 누르고있어. ALT + F11 키를 눌러 Microsoft Visual Basic for Applications 창.

2. 딸깍 하는 소리 끼워 넣다 > 모듈을 클릭하고 다음 코드를 모듈 창.

VBA 코드 : 셀 구두점으로 구분 된 중복 단어 제거

Function RemoveDupes2(txt As String, Optional delim As String = " ") As String
    Dim x
    'Updateby Extendoffice
    With CreateObject("Scripting.Dictionary")
        .CompareMode = vbTextCompare
        For Each x In Split(txt, delim)
            If Trim(x) <> "" And Not .exists(Trim(x)) Then .Add Trim(x), Nothing
        Next
        If .Count > 0 Then RemoveDupes2 = Join(.keys, delim)
    End With
End Function
Function RemoveDupes2(txt As String, Optional delim As String = " ") As String
    Dim x
    'Updateby Extendoffice
    With CreateObject("Scripting.Dictionary")
        .CompareMode = vbTextCompare
        For Each x In Split(txt, delim)
            If Trim(x) <> "" And Not .exists(Trim(x)) Then .Add Trim(x), Nothing
        Next
        If .Count > 0 Then RemoveDupes2 = Join(.keys, delim)
    End With
End Function

3. 그런 다음이 코드를 저장하고 닫고 워크 시트로 돌아간 다음이 공식을 입력합니다. = RemoveDupes2 (A2, ",") 데이터 옆에있는 빈 셀에 스크린 샷을 참조하십시오.

4. 그런 다음 수식을 필요한 셀에 복사하면 모든 중복 단어가 모든 셀에서 제거됩니다. 스크린 샷보기 :

주의 사항: 위의 공식에서 A2 사용할 셀을 나타내며 쉼표 (,)는 셀의 단어를 구분하는 구두점을 나타냅니다. 필요에 따라 다른 구두점으로 변경할 수 있습니다.

728x90