1 문자열 검색:

1 문자열 검색:

나는 많은 사용자 그룹 목록과 해당 사용자 이름을 가지고 있습니다. 이제는 더 많이 필터링하고 싶었습니다. 각 사용자의 사용자 그룹은 하나의 셀(사용자 이름 - 사용자 그룹)에 모두 포함되어 있으므로 단일 셀에 10-15개의 사용자 그룹이 있을 수 있습니다. 나는 "WTS"로 구성된 줄만 원하고 "WTS"로 구성된 사용자 그룹 줄을 새 셀에 배치합니다.

이 작업을 수행하려면 어떻게 해야 합니까?

예시 데이터:

사용자 그룹 1 WTS_A, BTS_B, WTS_C,

WTS_A와 WTS_C를 원합니다.

답변1

귀하의 질문에 대한 이해를 바탕으로 2단계 솔루션을 제안합니다.

1 단계- Excel에서 텍스트를 열로 변환 기능을 사용하고 단일 열 텍스트를 여러 열로 변환하세요. 공백과 쉼표를 모두 구분 기호로 사용하세요.

2 단계- 사용자 정의 VBA 기능을 사용하여 의도한 셀만 쉼표로 구분된 단일 셀로 결합합니다.

텍스트를 열로 변환 프로세스를 마친 후 시트에서 ALT + F11을 눌러 VBA 편집기를 엽니다. 삽입 메뉴에서 모듈을 삽입합니다. Module1이 생성되고 해당 코드 편집기가 열립니다. 그렇지 않은 경우 왼쪽 창에서 Module1을 두 번 클릭하여 코드 편집기를 엽니다.

다음 코드를 동일하게 붙여넣습니다.

Public Function TXTJOIN(argument1 As Range)      'Accept input range
   result = ""
   colcounter = argument1.Columns.Count
   rowcounter = argument1.Rows.Count
   If rowcounter > 1 Then
        TXTJOIN = CVErr(xlErrValue)  'If row counter > 1 return #VALUE! Error
        Exit Function
   End If

   If colcounter > 255 Then
        TXTJOIN = CVErr(xlErrValue)  'If col counter > 255 return #VALUE! Error
        Exit Function
   End If


        For Each element In argument1
            If Left(element, 3) = "WTS" And Len(element) > 3 Then
                result = result & element & ","
            End If
        Next element

        If result = "" Then
            TXTJOIN = result
        Else
            TXTJOIN = Left(result, Len(result) - 1)
        End If
End Function

이렇게 하면 문자열이 "WTS"로 시작하는지 확인하고 쉼표로 구분된 모든 열을 결합하는 사용자 정의 TXTJOIN 함수가 생성됩니다.

VBA 편집기를 저장하고 종료합니다. 워크시트로 돌아가서 이제 맨 오른쪽 열로 이동하여 적용 가능한 열 범위를 지정하는 이 함수를 입력합니다. 해당 행의 길이를 따라 아래로 복사하거나 드래그하세요. 각 셀에서 의도한 문자열을 가져와야 합니다. 다른 곳에는 값만 복사하고 나머지 열은 삭제하여 시트를 정리하세요.

#VALUE을(를) 받게 됩니다! 다음과 같은 상황에서 이 기능으로 인해 오류가 발생했습니다.

  • A1:D12와 같이 다차원 배열을 전달합니다.

  • 255개가 넘는 열 범위를 전달합니다.

  • A1:A12와 같이 여러 행 배열을 전달합니다.

이것이 당신에게 효과가 있는지 알려주세요.

제한 사항 - 이는 사용자 ID가 공백이나 쉼표로 구분되어 있다고 가정합니다. 두 개가 쉼표나 공백 없이 함께 있는 경우 이 함수는 두 개를 별도로 식별하지 않습니다.

여기에 이미지 설명을 입력하세요

답변2

유효한(흥미로운) 데이터를 검색한 다음 형식을 지정하는 두 가지 작업이 있습니다.

1 문자열 검색:

WTS와 같은 문자열 검색은 찾기 또는 검색 기능을 사용하여 수행할 수 있습니다. 둘 다 문자열이 발견되면 다음과 같이 숫자 값을 표시합니다: FIND("WTS";A1) 또는 SEARCH("WTS";A1)

첫 번째 행에 대해 이 작업을 수행합니다. 수식 사본이 있는 셀을 선택한 다음 모든 데이터 행에 대해 그 아래의 셀을 선택하고 붙여넣습니다. 수식은 FIND("WTS";B1)...FIND("WTS";C1)...로 자동 업데이트됩니다.

이 시점에서 오류가 발생하는 행을 숨기려면 수동 필터링을 제안합니다: #VALUE!

결과를 제공하지 않는 행을 삭제하면 됩니다.

2 사용자 그룹 데이터를 분할합니다.

셀에 문자열(예: 대시 "-")로 구분된 여러 항목이 있는 경우 셀을 선택하고 데이터 -> 텍스트 대 열 -> 구분 -> 구분 기호 추가를 사용하고 기타를 선택하고 대시를 입력합니다.

이렇게 하면 데이터를 가져와 다음과 같이 여러 셀에 배치합니다. Usergroup1 Usergroup2 Usergroup3 ...

3 보너스 팁:

방금 분할한 여러 셀에서 찾기 또는 검색 기능을 사용하려면 셀을 하나의 셀로 연결한 다음(기본적으로 분할의 역순) 연결된 값을 검색하세요. A7 = 연결(A1;A2;A3) A8 = FIND("WTS";A7)

관련 정보