MS-Excel에서“:”을 기준으로 문자열을 분할하는 방법은 무엇입니까?


58

내 Excel 열은 다음과 같은 단어로 채워져 있습니다.

1.) ABC:DCF
2.) DCF:FED

":"를 기준으로 각 단어를 분리 하고 셀 "A : 1"의 "ABC : DCF"가 "B : 1"셀의 "ABC"가되고 "셀"의 "DCF"가되도록 인접한 열에 결과를 넣습니다. C : 1 "및 각 열의 해당 값. 이것을하는 방법?

답변:


63

데이터 탭으로 이동 한 다음 텍스트-열 옵션으로 이동하십시오. 나중에 "구분"옵션을 선택한 다음 "기타"를 선택하고 원하는 구분자를 입력하십시오.


80

텍스트가 열로 작동합니다. 원래 값을 유지하려는 경우 다른 옵션
은 B1에서 수식을 사용하는 것입니다.

=left(a1,find(":",a1)-1) 

C1에서

=mid(a1,find(":",a1)+1,len(a1))

2
원래 값은 다른 솔루션으로도 유지할 수 있지만 (새 값을 저장하기 위해 다른 열을 지정할 수 있음) 항상 최신 값을 가질 수 있기 때문에이 솔루션이 더 좋습니다 (예 : A1을 수정하면, B1 및 C1은 업데이트되지만 text-to-column 옵션은 업데이트되지 않습니다.
— psychowood

이것은 훌륭한 솔루션입니다
— jsg

26

VBA를 사용할 수 있으면 Split()기능 을 사용할 수 있습니다 . 다음은 셀에서 사용할 수있는 사용자 정의 함수 (UDF)입니다. 선택한 문자 에 따라 분할되고 분할 목록 의 n 번째 요소를 반환 합니다.

MS Office에서 VBA를 추가하는 방법을 참조하십시오 . UDF를 정의하는 방법에 대한 정보.

Function STR_SPLIT(str, sep, n) As String
    Dim V() As String
    V = Split(str, sep)
    STR_SPLIT = V(n - 1)
End Function

따라서 다음을 입력해야합니다.

=STR_SPLIT(A1, ":", 1) // for the first half
=STR_SPLIT(A1, ":", 2) // for the second half

1
아주 좋은, 자신 만의 공식을 만드는 것이 너무 쉽다는 것을 몰랐습니다
— cowls

1
URL을 구성 요소 부분으로 분할하는 데 적합합니다.
— 1

7

B1에 붙여 넣고 오른쪽 열에 채우십시오.

=TRIM(MID(SUBSTITUTE($A1,":",REPT(" ",999)),COLUMNS($A:A)*999-998,999))

편집 : 이전에 현지화 된 수식 버전을 게시했습니다. 여기서 ','는 ';'으로 대체되었습니다. 미국 버전의 Excel에서는 작동하지 않습니다.

=TRIM(MID(SUBSTITUTE($A1;":";REPT(" ";999));COLUMNS($A:A)*999-998;999))


1
슈퍼 유저에 오신 것을 환영합니다. 이것이 무엇을하고 어떻게 작동하는지 설명하기 위해 답에 몇 문장을 추가 할 수 있습니까? 그것은 교육적 가치를 향상시킬 것입니다. 감사.
— fixer1234

예, 물론입니다. 수식이 아닌 데이터 탭의 텍스트에서 열로 텍스트와 동일한 작업을 수행합니다. ":"을 다른 구분 기호로 바꾸거나 다른 셀의 구분 기호를 참조 할 수 있습니다.
— Hardi Uutma

Excel에서는 셀에 붙여 넣을 때 유효한 수식이 아니라고 말합니다. 확인하고 업데이트하십시오.
— thilina R

안녕 thilina R! 알려 주셔서 감사합니다. 미국 버전의 Excel을 조정했습니다. 지금 문제가 있거나 분명하지 않은 사항이 있으면 알려주십시오.
— Hardi Uutma

아주 좋아요 지금까지의 유일한 대답은 자신의 함수를 만들지 않고 원하는만큼 많은 구분 기호를 처리 할 수 ​​있습니다.
— CWilson
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.