텍스트를 여러 셀로 분할 (Microsoft Excel)
Phil에는 텍스트가 포함 된 일련의 셀이 있습니다. 일부 텍스트가 너무 길어서 여러 셀로 분할해야합니다. 예를 들어, 셀에 “the quick brown fox”가 포함되어 있고 12 자보다 길지 않도록 텍스트를 분할해야하는 경우 Phil은 쉽게 할 수 있습니다. 그러나 그는 정확한 12 번째 문자가 아닌 12 번째 문자 앞의 공간에서 분할이 이루어 지길 원합니다. Phil은이 작업을 수행하는 방법에 대해 당황했습니다.
Excel에서 Text to Columns 도구를 사용할 수 있다고 생각할 수도 있지만 작업에는 적합하지 않습니다. 공백과 같은 구분 기호를 기준으로 텍스트를 분할하도록 도구를 설정하면 각 셀에서 단일 단어로 끝납니다. 텍스트를 “고정 너비”로 분할하도록 도구를 설정하면 공백에서 단어를 분할하지 않습니다. 각 청크가 지정한 크기인지 확인합니다.
수식을 사용하여 원하는 결과를 얻을 수 있지만 그렇게하면 놀랍도록 긴 수식이 생성됩니다. 예를 들어 너무 긴 텍스트가 A3 셀에있는 경우 다음 수식을 사용하여 12 번째 문자 앞의 공백에서 해당 텍스트의 첫 번째 청크를 분할 할 수 있습니다.
=IF(LEN($A3)>12,IF(ISERROR(FIND(" ",MID($A3,12,1) &MID($A3,11,1)&MID($A3,10,1)&MID($A3,9,1)&MID($A3,8,1) &MID($A3,7,1)&MID($A3,6,1)&MID($A3,5,1)&MID($A3,4,1) &MID($A3,3,1)&MID($A3,2,1))),MID($A3,1,1),MID($A3,1, 13-FIND(" ",MID($A3,12,1)&MID($A3,11,1)&MID($A3,10,1) &MID($A3,9,1)&MID($A3,8,1)&MID($A3,7,1)&MID($A3,6,1) &MID($A3,5,1)&MID($A3,4,1)&MID($A3,3,1)&MID($A3,2,1)))) ,RIGHT($A3,LEN($A3)))
기억하십시오. 이것은 단지 첫 번째 청크를 얻기위한 단일 공식입니다. 두 번째, 세 번째, 네 번째 및 이후 청크를 가져 오는 공식은 훨씬 더 깁니다. 분명히 공식을 사용하는 것이 최선의 방법이 아닐 수 있습니다.
이것은 매크로를 사용합니다. 매크로는 텍스트 문자열을 검사하고 원하는 길이로 쉽게자를 수 있습니다. 다음 사용자 정의 함수를 고려하십시오.
Function SplitMe(sSentence As String, iPos As Integer, Optional iLen = 12) Dim sSegments() As String Dim iSegments As Integer Dim sRest As String Dim sTemp As String Dim iSpace As Integer Dim J As Integer iSegments = 0 sRest = sSentence sTemp = Left(sRest, iLen + 1) Do Until Len(sTemp) <= iLen iSpace = 0 For J = Len(sTemp) To 1 Step -1 If Mid(sTemp, J, 1) = " " And iSpace = 0 Then iSpace = J Next J If iSpace > 0 Then sTemp = Left(sRest, iSpace - 1) sRest = Mid(sRest, iSpace + 1) Else sRest = Mid(sRest, Len(sTemp) + 1) End If iSegments = iSegments + 1 ReDim Preserve sSegments(1 To iSegments) sSegments(iSegments) = sTemp sTemp = Left(sRest, iLen + 1) Loop iSegments = iSegments + 1 ReDim Preserve sSegments(1 To iSegments) sSegments(iSegments) = sTemp If iPos <= iSegments Then SplitMe = sSegments(iPos) Else SplitMe = "" End If End Function
이 함수는 2 개 또는 3 개의 매개 변수를 사용합니다. 첫 번째 매개 변수는 분할 할 문자열이고 두 번째 매개 변수는 문자열에서 원하는 청크이며 세 번째 (및 선택적) 매개 변수는 각 청크의 원하는 길이입니다. 세 번째 매개 변수를 생략하면 함수는 각 청크가 최대 12자인 것으로 가정합니다. 예를 들어, 텍스트가 A5 셀에 있다고 가정하면 다음은 각 청크 길이가 최대 12자인 텍스트에서 두 번째 청크를 반환합니다.
=SplitMe(A5,2)
이 함수는 텍스트 문자열의 각 단어가 각 청크에 대해 지정된 대상 길이보다 길지 않으면 좋은 결과를 반환합니다. 그렇다면 전체 단어를 포함하지 않는 일부 청크를 포함하여 이상한 결과를 얻을 수 있습니다.
_ 참고 : _
이 페이지 (또는 ExcelTips 사이트의 다른 페이지)에 설명 된 매크로를 사용하는 방법을 알고 싶다면 유용한 정보가 포함 된 특별 페이지를 준비했습니다.
link : / excelribbon-ExcelTipsMacros [새 브라우저 탭에서 특별 페이지를 열려면 여기를 클릭하세요]
.
_ExcelTips_는 비용 효율적인 Microsoft Excel 교육을위한 소스입니다.
이 팁 (3899)은 Microsoft Excel 97, 2000, 2002 및 2003에 적용됩니다.