Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Get Fabric Certified for FREE during AI Skills Fest. This week only. Secure your voucher now.

Reply
lc881
Frequent Visitor

Extract Text after delimiter while igoring repeated words based on Owner ID column

I have data like the table below:

Owner ID

Pet Description

[Desired Output]

123

Dog Light Brown

Light Brown

123

Dog Dark shade of Green

Dark shade of Green

123

Dog Black

Black

456

House Cat Purple

Purple

456

House Cat Light Blue

Light Blue

789

Mouse White

White

 

I need to create a new column that will contain just the Colour of the Pet, e.g. Light Brown, Dark shade of green etc.
However, I can't figure out how to Extract the Colour info as the description field is not consistent.
I planned to do Extract Text after Delimiter " ", but because of the inconsistencies it will not work.
Is there a way (in DAX, Power Query, anything) where I can recreate the following logic:
For each row of Owner ID XXX e.g. 123, Ignore words that are found in all the rows e.g. 'Dog' in the first 3 rows, and extract the text afterwards.
NOTE: In my dataset, there will NOT be duplicate description values ie. all unique

1 ACCEPTED SOLUTION
davehus
Memorable Member
Memorable Member

Hi @lc881 ,

 

In power query, create a custom column and use the formula below.

 

if Text.Contains([Pet Description], "Dog") then Text.Replace([Pet Description],"Dog","") else if Text.Contains([Pet Description], "House Cat") then Text.Replace([Pet Description],"House Cat","") else ""

 

Then trim and clean the column. You can build it up as desired with your pet name variations.

 

HTH

View solution in original post

2 REPLIES 2
davehus
Memorable Member
Memorable Member

Hi @lc881 ,

 

In power query, create a custom column and use the formula below.

 

if Text.Contains([Pet Description], "Dog") then Text.Replace([Pet Description],"Dog","") else if Text.Contains([Pet Description], "House Cat") then Text.Replace([Pet Description],"House Cat","") else ""

 

Then trim and clean the column. You can build it up as desired with your pet name variations.

 

HTH

lc881
Frequent Visitor

Doing it in Power Query was the advice I needed, thanks.
As there were hundreds and hundreds of rows with many different pet descriptions, it would've taken too long to manually write a long if statement with all the names etc. (Should've specified that in the question)

What I had to do was create a column that counted the number of words in Pet Description. I then Grouped the Owner ID by MIN of Word Count. I then added a custom column which computed the Word Count of that row - MIN for that Owner ID. I then used this value as a variable in a 'Split by delimiter' function. Not pretty but probably the best outcome for me.

Because your solution answers the scope of the question I posted and would be helpful for beginners, I am going to mark it as solution 🙂 thanks

Helpful resources

Announcements
May Power BI Update Carousel

Power BI Monthly Update - May 2026

Check out the May 2026 Power BI update to learn about new features.

Fabric SQL PBI Data Days

Data Days 2026 coming soon!

Sign up to receive a private message when registration opens and key events begin.

New to Fabric survey Carousel

New to Fabric Survey

If you have recently started exploring Fabric, we'd love to hear how it's going. Your feedback can help with product improvements.

Power BI DataViz World Championships carousel

Power BI DataViz World Championships - June 2026

A new Power BI DataViz World Championship is coming this June! Don't miss out on submitting your entry.