Splitting a string

There are numerous occasions when we need to split a string into pieces. Depending on the type of string that we are handling we can do it using many different techniques. Here I’m going to show you one way of doing a simple string split. On column A we have the strings that we want to split. We want to get the text that is before the “,” character into column B.

Split_String
So in column B we can put the following formula:

=TRIM(LEFT(A1,FIND(",",A1)-1))

Here I use 3 Excel functions: TRIM(), to remove the spaces on the beginning and on the end of the string that we get; LEFT() to get the string to the left of the “splitter”, in this case is the , character and FIND() to find the position of the “splitter” character. I remove 1 from the position that FIND() returns so that I don’t get the “,” character.

In column C we can put the following formula to the the text that is on the right of the “,” character:

=TRIM(RIGHT(A1,LEN(A1)-FIND(",",A1)))

Here, instead of the LEFT() function, I use the RIGHT() because I want to get the text on the right of the “splitter” character. I use the LEN() function to get the number of character that the string on column A has so that I can subtract the position where the FIND() function finds the “splitter” character. This way I get the number of characters for the function RIGHT() to return, counting from the end of the string in column A. Example: the string in cell A1 has a LEN(A1) of 25 characters. The “splitter” character is found on position 9 of the string. So my formula will return on cell C1 (25-9)=16 characters counting from the right of string in cell A1, the result will be “2nd Street 2009”.

8 comentários:

Anonymous said...

Thank you very much! I just copied the formula, changed the separator and it worked perfectly.

Anonymous said...

'What if' there are more than 2 commas say ( 6 commas) in the input string..

is there a way called as Text to rows

jppinto said...

Excel 2010 has a function called "Text to columns" that can be found on the Data tab of the menu bar.

Anonymous said...

Thanks! - was able to rework this to meet my needs.

Anonymous said...

What if the text I want to split into columns comes from a VLOOKUP formula?

Because now, excel divides my formula into columns instead of the text I want to divide into columns.

Anonymous said...

Simple

Create a VBA function

Function StrSplit(InString, Pos, Delim)
StrArray = Split(InString, Delim)
StrSplit = StrArray(Pos - 1)
End Function


Use
To get the 3rd field from a coma delimited string:

=StrSplit(A1,3,",")

To get the 2nd field from a space delimited string:

=StrSplit(A1,2," ")

Nested example:
To get the 2nd field of a space delimited string nested inside a cama delimed string. Example to get "Doe" out of the following string.

A1=Electrician, John Doe,1234 main st., any town, USA

=StrSplit(TRIM(StrSplit(A3,2,",")),2," ")

NOTE: I know this is an old post, but for anyone else who may have an need. Don't over complicate things, use the KISS method like this.


Anonymous said...

Should Be:

Simple

Create a VBA function

Function StrSplit(InString, Pos, Delim)
StrArray = Split(InString, Delim)
StrSplit = StrArray(Pos - 1)
End Function


Use
To get the 3rd field from a coma delimited string:

=StrSplit(A1,3,",")

To get the 2nd field from a space delimited string:

=StrSplit(A1,2," ")

Nested example:
To get the 2nd field of a space delimited string nested inside a coma delimited string. Example to get "Doe" out of the following string.

A1=Electrician, John Doe,1234 main st., any town, USA

=StrSplit(TRIM(StrSplit(A1,2,",")),2," ")

NOTE: I know this is an old post, but for anyone else who may have an need. Don't over complicate things, use the KISS method like this.

D Entertainment said...



Thung lũng Tuyệt Tình bị một vách núi vây quanh, diện tích lên tới vài chục dặm vuông, so với Cự Thạch Thành thì lớn hơn không ít.

Thành Vân Trung chính là một tòa thành ở trong thung lũng tuyệt tình, nếu như muốn tiên vào trong thung lũng thì tuyệt đối phải tiến vào trong tòa thành này, đây chính là con đường duy nhất. đồng tâm
game mu
cho thuê nhà trọ
cho thuê phòng trọ
nhac san cuc manh
số điện thoại tư vấn pháp luật miễn phí
văn phòng luật
tổng đài tư vấn pháp luật
dịch vụ thành lập công ty trọn gói
http://we-cooking.com/
chém gió

Lúc này hai nữ tử tuyệt đẹp cùng với một đám tùy tùng tiến vào trong thành Vân trung khiến cho rất nhiều nam tử phải bỏng cả đôi mắt.

Thành vân trung là một tòa thành lớn nhất ở trong thung lũng tuyệt tình vì vậy tôn tin nam nữ rất nghiêm, ở đây nữ nhân có địa vị cao hơn nam nhân rất nhiều.

Mặc dù không giống như thung lũng tuyệt tình nhưng nam tử tiến vào đây nếu như bất kính với nữ nhân thì sẽ bị thung lũng Tuyệt Tình bắt đi trọn đời làm nô lệ, đương nhiên còn phải chịu cực hình.

- Lạc Nhan, chúng ta đến thành Vân Trung, đi dọc theo con đường này khiến cho ta phải mệt chết.

Lê Tiêu Dao nói với Nam Cung Lạc Nhan.

- Cũng tại ngươi muốn tới, bây giờ đã biết mệt chưa?