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.