문자열에서 초기 문자 가져 오기 (Microsoft Excel)
Rajeev는 일련의 단어의 첫 글자를 추출하는 공식이 필요합니다. 예를 들어, 셀에 “Rajeev Kumar Pandey”라는 텍스트가 포함 된 경우 그는 “RKP”라는 문자를 다른 셀로 추출하려고합니다.
시리즈의 단어 수는 셀마다 다를 수 있습니다.
이 작업에 접근 할 수있는 몇 가지 방법이 있습니다. 우선 중간 열을 추가하여 워크 시트의 구조를 수정하지 않는 것으로 가정합니다. 이 가정은 또한 원본 문자열을 개별 단어로 분할하기 위해 텍스트를 열로 기능을 사용하는 것을 배제합니다.
문제의 핵심은 수식이 원래 문자열에서 공백이있는 위치를 확인할 수 있는지 확인하는 것입니다. 다음과 같은 공식이 작업을 수행 할 것이라고 생각할 수 있습니다.
=LEFT(A1,1)&MID(A1,FIND(" ",A1,1)+1,1)&MID(A1, FIND(" ",A1,FIND(" ",A1,1)+1)+1,1)
이 공식은 부분적으로 작동합니다. 원래 문자열에 세 단어를 구분하는 두 개의 공백이 있으면 제대로 작동합니다. 단어가 더 적 으면 수식이 오류를 반환합니다. 더 많은 단어가 있으면 처음 세 단어의 첫 글자 만 반환합니다 (세 번째 단어 이후의 모든 단어는 무시 함).
즉, 수식은 공백을 확인할뿐만 아니라 공백이 없거나 너무 적은 경우 오류를 처리해야합니다. 오류 검사는 공식이 훨씬 길어짐을 의미합니다.
=IF(ISERR(LEFT(A1,1)&MID(A1,SEARCH(" ",A1)+1,1) &MID(A1,SEARCH(" ",A1,SEARCH(" ",A1)+1)+1,1) &MID(A1,SEARCH(" ",A1,SEARCH(" ",A1,SEARCH(" ",A1)+1)+1)+1,1) &MID(A1,SEARCH(" ",A1,SEARCH(" ",A1,SEARCH(" ",A1,SEARCH(" ", A1)+1)+1)+1)+1,1)),IF(ISERR(LEFT(A1,1)&MID(A1,SEARCH(" ",A1)+1,1) &MID(A1,SEARCH(" ",A1,SEARCH(" ",A1)+1)+1,1) &MID(A1,SEARCH(" ",A1,SEARCH(" ",A1,SEARCH(" ",A1)+1)+1)+1,1)), IF(ISERR(LEFT(A1,1)&MID(A1,SEARCH(" ",A1)+1,1) &MID(A1,SEARCH(" ",A1,SEARCH(" ",A1)+1)+1,1)), IF(ISERR(LEFT(A1,1)&MID(A1,SEARCH(" ",A1)+1,1)), IF(ISERR(LEFT(A1,1)),"",LEFT(A1,1)),LEFT(A1,1) &MID(A1,SEARCH(" ",A1)+1,1)),LEFT(A1,1)&MID(A1,SEARCH(" ",A1)+1,1) &MID(A1,SEARCH(" ",A1,SEARCH(" ",A1)+1)+1,1)), LEFT(A1,1)&MID(A1,SEARCH(" ",A1)+1,1) &MID(A1,SEARCH(" ",A1,SEARCH(" ",A1)+1)+1,1) &MID(A1,SEARCH(" ",A1,SEARCH(" ",A1,SEARCH(" ",A1)+1)+1)+1,1)),LEFT(A1,1) &MID(A1,SEARCH(" ",A1)+1,1)&MID(A1,SEARCH(" ",A1,SEARCH(" ",A1)+1)+1,1) &MID(A1,SEARCH(" ",A1,SEARCH(" ",A1,SEARCH(" ",A1)+1)+1)+1,1) &MID(A1,SEARCH(" ",A1,SEARCH(" ",A1,SEARCH(" ",A1,SEARCH(" ",A1)+1) +1)+1)+1,1))
이 수식은 문자열에서 0에서 5 단어까지의 모든 것을 적절하게 처리합니다. 또한 문자열이 공백으로 시작하거나 끝나지 않으며 단어 사이에 여러 개의 공백이 포함되지 않는다고 가정합니다. 많은 수의 단어 또는 기타 잠재적 인 합병증 (예 : 단어 사이의 공백 수)을 처리하려면 사용자 정의 함수를 사용하는 것이 가장 좋습니다.
사용자 정의 함수가 문자열의 단어에서 선행 문자를 가져올 수있는 방법에는 여러 가지가 있습니다. 사실, 나는 똑같은 것을 성취하는 몇 가지 변형을 받았습니다. 그러나 다음 예제는 아마도 내가 만난 가장 간결한 코드 일 것입니다.
Function Initials(Raw As String) As String Dim Temp As Variant Dim J As Integer Application.Volitile Temp = Split(Trim(Raw)) For J = 0 To UBound(Temp) Initials = Initials & Left(Temp(J), 1) Next J End Function
Split 함수는 그 안에서 공백이 발생하는 위치에 따라 문자열을 “찢어냅니다”. 문자열의 개별 단어는 배열 (이 경우 Temp)에 배치되어 개별 단어에 액세스 할 수 있습니다. 워크 시트에서 함수를 사용하려면 다음과 같이 사용하면됩니다.
=Initials(A1)
_ 참고 : _
이 페이지 (또는 ExcelTips 사이트의 다른 페이지)에 설명 된 매크로를 사용하는 방법을 알고 싶다면 유용한 정보가 포함 된 특별 페이지를 준비했습니다.
link : / excelribbon-ExcelTipsMacros [새 브라우저 탭에서 특별 페이지를 열려면 여기를 클릭하세요]
.
_ExcelTips_는 비용 효율적인 Microsoft Excel 교육을위한 소스입니다.
이 팁 (8663)은 Microsoft Excel 2007, 2010 및 2013에 적용됩니다. 여기에서 Excel의 이전 메뉴 인터페이스에 대한이 팁의 버전을 찾을 수 있습니다.
link : / excel-Pulling_Initial_Letters_from_a_String [문자열에서 초기 문자 가져 오기]
.