답변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에 대한 도우미 열을 사용하거나 한 번에 모두 수행할 수 있습니다.
이 접근 방식은 올바르게 버릴 수 있는 모든 비트를 찾아내기 위해 몇 번의 작업이 필요하지만, 소스 데이터에 향후 예상치 못한 새로운 오류가 포함될 수 있는 경우에는 더욱 강력해집니다.
기억하세요: 바보 방지를 위해 노력하면 누군가가 더 큰 바보를 데려올 것입니다.