Excel tip - How to split text from one cell to multiple cells

← PrevNext →

In this post, I’ll show you how split text string from one cell to multiple cells. I am sharing two different methods, one using a new built-in function called TEXTSPLIT and another using a macro in VBA. In-addition, I’ll also show you how to split text in older versions like Excel 2007.

1) Using the new TEXTSPLIT function

There’s a new function in Excel called the TEXTSPLIT function. It separates (or splits) text strings automatically into multiple cells (columns or rows), using a "delimiter". A delimiter can be a comma, a space, colon, or a combination different delimiters etc.

The function works same as Text to Columns features (link to Excel 2007), but in the form of a formula.

However, at this moment the TEXTSPLIT function is only available in Excel for the web and Microsoft 365. So, if you have access to either Excel for the web or MS 365, then you can use this function.

No worries if you do not have MS 365 or Excel for the web, you can still split strings (or texts) from one cell to multiple cells using a Macro.

Ok, now lets see how the TEXTSPLIT() function works.

Syntax

TEXTSPLIT (text, col_delimiter, row_delimiter, ignore_empty, match_mode, pad_with)

The function takes 6 parameters (or arguments). The first two arguments are required (or compulsory).

text: The text that you want to split. It can be a cell value or a string. This is required.

col_delimiter: A text or character that marks the point where to split the text across columns. This is required.

row_delimiter: A text or character that marks the point where to split the text across rows. Oh yes, you can now split cell values or a string or texts down rows, easily.

ignore_empty: This is to specify whether to ignore empty values or not. It takes a Boolean true or false. The default value is FALSE.

match_mode: Searches a text for a delimiter match.

pad_with: A value to use for padding.

Now, let’s work with it.

I am using Excel for the Web and I have signed in to it.

I have three columns in my Excel worksheet. The first column has Full Name, which has texts separated by a space. The formula to split the texts into multiple columns should be,

TEXTSPLIT(A2, " ")

See this image.

textsplit function example in Excel

This is not just limited to splitting the text horizontally (in columns). Using the TEXTSPLIT() function you can split text vertically, that is down the rows. For example,

TEXTSPLIT(A2, , " ")

Here, I have ignored the 2nd argument and assigned space (within double quotes) to the 3rd argument. The result will be,

Split text to multiple rows using textsplit function

Related Tutorial... How to split cell values with "Carriage Returns" to Multiple Columns with VBA Split() function

2) Split text into multiple cells using VBA Macro

In case you do not have access to TEXTSPLIT() function, which I have explained above, you can use a simple macro (a program in VBA) to do the same. This will just automate the whole process.

Let us see how we can split texts (in cells) into multiple cells using a small piece of code, with the click of a button.

Option Explicit

Private Sub cmd_Click()
    splitText
End Sub

Sub splitText()

    Dim str() As String
    
    Dim rng, rngCell As Range
    Set rng = Selection    ' The range or the cells that you have selected.
    
    For Each rngCell In rng
        If Trim(rngCell) <> "" Then
            str = VBA.Split(rngCell, " ")    ' Change delimiter according to your requirement.
            rngCell.Resize(1, UBound(str) + 1).Offset(0, 1) = str
        End If
    Next rngCell
End Sub

Split text to multiple cells using a simple macro

The macro splits texts (in cells) that are selected. So, if I select all the cells in the 1st row, it will split all the texts in the next columns. Alternatively, you can select limited cells (or texts that you want to split), by holding the Ctrl key and clicking the mouse.

Here I am using VBA Split() function to split the texts. The function takes 4 arguments. However, I have defined only the first two, the text and a delimiter (space).

Split a text to multiple cells in Excel 2007 (using Text to Columns wizard)

In older versions like Excel 2007, you can use the Text to Columns wizard to split texts from a cell to multiple cells.

Just follow these steps.

1) Select the cells that you want to split, navigate to the Data tab from the top menu and click the Text to Columns option.

Text to Columns wizard in Excel

2) It will open the Convert Text to Columns Wizard. Choose the option Delimited and click the Next button.

Convert Text Columns wizard in Excel

3) Next, specify the delimiters. You can choose multiple options. Since the texts in my worksheet cells have a single space, I chose Space delimiter.

Choose delimiters in Excel

4) Finally, choose the destination cells (or range) where you want to split the texts.

   • Click on the "Destination" box

   • Select the range of cells

   • Click the "Finish" button.

Done!

set destination in text to columns wizard in Excel

← PreviousNext →