단일 열의 이름 일치 및 다음 열의 필수 결과

단일 열의 이름 일치 및 다음 열의 필수 결과

나는 4~5개의 lac 행 데이터 정도의 매우 긴 데이터베이스를 가지고 있습니다. 비슷한 이름을 가진 다음 열의 결과를 원합니다.

Fuzzy를 사용하려고 하는데 일치하는 고유 목록이 없습니다.

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

답변1

문제를 해결하려면 VBA(매크로)가 필요합니다.

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

작동 방식:

  • 누르거나Alt+F11또는마우스 오른쪽 버튼으로 클릭시트 TAB 및 팝업 메뉴에서 클릭코드 보기.
  • 복사&반죽이 코드는표준 모듈.
  • 달리다매크로.

     Private Sub Worksheet_SelectionChange(ByVal rngSel As Range)
      Set rngTable = [I2:K17]
       If rngSel.Count > 1 Or Intersect(rngSel, rngTable) Is Nothing Then End
       For Each rngCell In rngTable
    rngCell.Interior.ColorIndex = IIf(rngCell.Value = rngSel.Value, 27, -4142)
       Next
     End Sub
    

주의

  • 이 코드에서는 rngTable = [I2:K17]셀 참조와 색상 코드를 27, -4142편집할 수 있습니다.

답변2

내가 취할 접근 방식은 다음 두 가지 방법 중 하나입니다.

1) 조회 테이블을 사용하여 바보 사용자가 동일한 것으로 생각할 수 있는 가능한 모든 변형을 철저하게 구성하거나 소스 데이터를 사용하고 중복 항목을 제거하여 알려진 바보 옵션 목록을 얻으십시오. 이는 "직위"가 포함된 연락처 데이터를 마이그레이션할 때 수행해야 하는 일종의 작업입니다. 현재까지의 기록에는 "Managing Director"(MD, MD, M Dir, Manging Driector 등)의 스타일 지정 또는 철자법이 67가지 있습니다. 이 접근 방식은 기록 데이터에 대한 일회성 작업에 적합합니다. 제 경우에는 데이터가 마이그레이션된 후 드롭다운 선택 목록을 사용하여 사용자가 새 시스템에서 동일한 이전 문제를 일으키는 것을 방지했습니다.

2) 일치하는 항목을 구별하는 데 필요하지 않다고 생각하는 관련 없는 정보를 "버리는" 일련의 규칙을 사용하십시오. 짧은 문자열을 ""로 대체하는 여러 중첩된 SUBSTITUTE 함수가 트릭을 수행합니다. 와 같은 구두점을 바꿉니다. - / : 먼저 (PVT) 및 Ltd 및 Limited와 같은 것 - 이러한 짧은 문자열 중 하나가 모호하고 다른 단어 내에 나타날 수 있는 경우 앞, 뒤 또는 둘 다에 공백을 포함하십시오. 좋은 예는 "mpany" 또는 "bblers"로 끝나지 않도록 "Co"를 바꾸되 "Co"는 바꾸지 않는 것입니다. 가장 바깥쪽의 SUBSTITUTE " "를 ""로 만듭니다(즉, 공백을 마지막으로 잃습니다). 이것은 "ABC Foods"를 다루지만, 단어를 잃지 않고 문자열을 구문 분석할 수 있도록 마지막까지 공백을 남겨 둡니다.

나는 귀하가 "ABC Foods"를 "ABC Foods (PVT) Ltd."와 동일하다고 생각한다고 가정합니다.

이제 모든 "올바른" 답의 목록을 작성하십시오. 수식을 사용하여 왼쪽에 두 번째 열을 만든 다음 복사 > 특수 붙여넣기 > 값을 "평탄화"합니다. 이제 기본 데이터에서 대체 항목을 사용하여 이름을 최소한의 형식으로 줄인 다음 이를 조회 값으로 사용하여 "올바른" 버전을 반환합니다. SUBSTITUTE에 대한 도우미 열을 사용하거나 한 번에 모두 수행할 수 있습니다.

이 접근 방식은 올바르게 버릴 수 있는 모든 비트를 찾아내기 위해 몇 번의 작업이 필요하지만, 소스 데이터에 향후 예상치 못한 새로운 오류가 포함될 수 있는 경우에는 더욱 강력해집니다.

기억하세요: 바보 방지를 위해 노력하면 누군가가 더 큰 바보를 데려올 것입니다.

관련 정보