셀에서 텍스트 제거

셀에서 텍스트 제거

일반적으로 다음 형식으로 된 54000개 이상의 이름이 포함된 AD 추출이 있습니다(샘플 데이터).

Barnes, Bob B [WST]  
Santiago, Francis AB [AT]  
Chandler, Ronald  
Jefferson,  Katherine T [NT]  
Forrest,  Stan S  [WST]  
El Guerrero,  Annette BMD [AT]  
Lopez,  Todd TA  [CNT]  
Jackson, Lincoln F [NT]  
Nunez, Mattie Joey LC [WST]  
Moran,  David DA [AT]  
Gowan, Darryl V  
Hansen,  Rick AF  [NT]  
Lowe,  Denise DR  [WST]  
Butler,  Doug D  [AT]  
Kim, Erika  

불행하게도 이 형식은 데이터 전체에서 일관되지 않습니다. 때로는 MI가 없거나 최대 3개의 MI가 있을 수 있습니다. 또한 [RGN]이 항상 존재하는 것은 아닙니다. 그리고 설상가상으로 공백이 포함된 이름도 상당히 많습니다(예: Da Vinci).


LastName, FirstName이 표시되도록 이름을 정리해야 합니다.

최소한의 성공으로 LEFT, RIGHT 및 Text-to-Columns 기능을 사용해 보았습니다. 지금까지 가장 좋은 결과는 공백으로 구분한 다음 (a1&" "&b1)을 사용하여 결합하는 Text-to-Columns 방법입니다. 이것은 아마도 이름의 절반에만 작동하며 현재 셀(a1&b1&c1 등)을 계속 결합한 다음 이름이 올바른지 수동으로 확인할 계획입니다. 나는 누군가가 나와 내 눈을 이런 일로부터 구해줄 수 있고 내가 시도해 볼 수 있는 아이디어가 있기를 기도하고 희망하고 있습니다.

답변1

나는 사용한다RegEx 찾기/바꾸기 추가 기능정규식 활성화 워크시트 기능을 갖습니다.

이를 통해 MI 및 RGN을 쉽게 제거할 수 있습니다.

=RegExReplace(A1," [A-Z ]*(\[.*)*","",-1)

  1. 패턴 찾기" [A-Z ]*(\[.*)*"

    • 이름 뒤의 공백과 일치합니다.
    • [A-Z ]*선택적으로 이니셜과 일치
    • (\[.*)*선택적으로 지역과 일치
  2. 그것을 아무것도 아닌 것으로 대체합니다""
  3. 마지막 항목만 대체합니다.-1

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

답변2

정규식이나 이와 유사한 것을 사용하여 해당 문자열을 세 부분으로 분할합니다. 성, 이름, 추가.

RGN(지역?)의 짧은 목록이 있다고 가정하면 동일한 기능을 사용하여 추가 항목을 MI와 RGN으로 분할할 수 있습니다.

쉼표를 구분 기호로 사용하여 성을 앞쪽에서 빼내는 것은 쉽습니다. 공백이 있는 이름을 찾는 것이 더 어려울 수 있습니다. 그러나 MI가 3개 있는 문자는 단일 이니셜을 갖는다고 가정하면 첫 번째 단일 문자를 첫 번째 중간 이니셜로 찾을 수 있습니다. 그 앞에 있는 것은 이름입니다.

무엇을 하든지 단계적으로 하십시오. 쉽기 때문에 성을 뽑아보세요. 나머지는 FirstName MI [RGN]입니다. 지역이 있는 곳에 괄호가 있으면 그것도 쉽습니다. 그것들을 벗겨내세요.

그러면 FirstName MI가 남습니다. 나는 오른쪽에서 왼쪽으로 일할 것입니다. 마지막 문자가 공백이면 삭제하세요. 문자이고 왼쪽 문자가 공백이면 이니셜입니다. 그것을 뽑아서 MI의 대상 필드 앞에 추가하십시오. 다중 문자 문자열이 나올 때까지 반복합니다. 이것이 FirstName의 끝입니다. 축하합니다. 모든 내용을 분할했습니다.

또 다른 질문: AD로 돌아가서 다시 내보내고 표시 이름이 아닌 개별 필드를 가져올 수 있습니까? (powershell, Get-ADUser ...) 방금 나열한 작업을 수행하는 것보다 표시 이름을 다시 조합하는 것이 훨씬 쉬울 것입니다.

관련 정보