Text.Split Function (Power Query M)

If you want to break a single text value into pieces wherever a separator appears, the Text.Split function is what you reach for. It returns each piece as a separate item in a list, which you can then use as is or pull a single part from.

Syntax of Text.Split Function

Text.Split(text as text, separator as text) as list

where

  • text (required, text). The text value you want to break apart.
  • separator (required, text). The exact text sequence to split on. Every place it appears in text becomes a break point, and the separator itself is removed from the output.

Returns: a list of text values, the pieces of text between each occurrence of separator. If the separator is not found, the list holds the original text as its only item.

In plain terms, you hand it some text and a separator, and it gives you back the chunks in between as a list.

Example 1: Split a comma-separated string into a list

Break a simple comma-separated string into its three parts.

let
Source = Text.Split("apple,banana,cherry",",")
in
Source

Result: {"apple", "banana", "cherry"}

Each comma marks a break point, and the commas themselves drop out of the result.

Example 2: Split on a multi-character separator

The separator can be more than one character. Here the parts are joined by a space, a dash, and another space.

let
Source = Text.Split("London - UK - Europe"," - ")
in
Source

Result: {"London", "UK", "Europe"}

The whole - sequence is treated as one separator, so the spaces around the dash are not left behind.

Example 3: Grab a single part with an index

Because Text.Split returns a list, you can index it to pull out one part. Here we split a date on / and take the first piece.

let
Source = Text.Split("2026/06/08","/"){0}
in
Source

Result: 2026

The {0} grabs the first item from the list. Lists are zero-based, so {0} is the first part, {1} the second, and so on.

Example 4: Split a column and keep the first part

Pulling the first name out of a full-name column is a common job.

Here is the starting data:

FullName
Aisha Khan
Bruno Silva
Mei Tan

Add a column that splits each name on the space and keeps the first piece:

let
Source = Excel.CurrentWorkbook(){[Name="Contacts"]}[Content],
#"Added FirstName" = Table.AddColumn(Source, "FirstName", each Text.Split([FullName]," "){0}, type text)
in
#"Added FirstName"

The {0} after the split takes the first part of each name.

The result keeps the original column and adds the first name:

FullNameFirstName
Aisha KhanAisha
Bruno SilvaBruno
Mei TanMei

Example 5: Split a column and keep the last part

This time we want the domain from an email address, which is whatever comes after the @.

Here is the starting data:

Email
alex@sales.example.com
sara@support.example.org
john@example.net

Split each email on @ and take the last part with List.Last:

let
Source = Excel.CurrentWorkbook(){[Name="Emails"]}[Content],
#"Added Domain" = Table.AddColumn(Source, "Domain", each List.Last(Text.Split([Email],"@")), type text)
in
#"Added Domain"

List.Last returns the final item, so this works no matter how many parts the split produces.

The result adds the domain alongside each email:

EmailDomain
alex@sales.example.comsales.example.com
sara@support.example.orgsupport.example.org
john@example.netexample.net

Things to keep in mind with Text.Split

  • The separator is an exact text sequence, not a set of characters. Text.Split("a;b,c",";,") looks for the literal ;,, not “a semicolon or a comma”. To split on any one of several characters, use Text.SplitAny("a;b,c",";,") instead.
  • Empty segments come back as empty strings. Splitting "a,,b" on , returns {"a", "", "b"}, keeping the empty piece between the two commas.
  • The separator is case-sensitive. Splitting on "x" will not break on "X". Match the exact casing of the character you want to split on. To test for a substring rather than split on one, reach for Text.Contains instead.

Common questions about Text.Split

What is the difference between Text.Split and the Splitter functions?

Text.Split is a one-shot way to break text on a fixed separator. The Splitter.SplitTextByDelimiter family returns a reusable splitter function and offers more control, like splitting only at the first or last delimiter. The UI’s Split Column feature is built on those splitters.

How do I split a column into separate columns instead of a list?

Use Table.SplitColumn, or the Split Column button on the Home tab. Text.Split only produces a list inside one cell, so you would still need to expand or index that list to land values in their own columns.

List of All Power Query Functions

Related Power Query Functions / Articles:

I am a huge fan of Microsoft Excel and love sharing my knowledge through articles and tutorials. I work as a business analyst and use Microsoft Excel extensively in my daily tasks. My aim is to help you unleash the full potential of Excel and become a data-slaying wizard yourself.