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

A new Data Days event is coming soon! This time we’re going bigger than ever. Fabric, Power BI, SQL, AI and more. Don't miss out.

Reply
vijaykaali811
Helper I
Helper I

power query matching pattern

i have table1 with column title column another table2 with column pattern and category

table1.title 

"job xx run on"

"password  for id xxx  expired"

table2

pattern category 

job*run    Jobrun    

password*expired  passwordexpiry 

with this now i want to get category in table1  with values table1.title matching table2.pattern , get table2.category 

I did this in excel with just xlookup and match. 

But how to do that in Powerquery power bi 

1 ACCEPTED SOLUTION
Shravan133
Super User
Super User

Add Custom Column to Match Patterns

In Table1, add a custom column that looks through each Pattern in Table2, checks if it matches using a basic wildcard logic (we'll treat * as "any characters"), and returns the corresponding Category.

Go to Add Column > Custom Column in Table1 and paste:

let

    currentTitle = [Title],

    matchedCategory =

        List.First(

            List.Transform(

                Table.SelectRows(Table2, each

                    Text.Contains(currentTitle, Text.BeforeDelimiter([Pattern], "*"))

                    and Text.Contains(currentTitle, Text.AfterDelimiter([Pattern], "*"))

                )[Category],

                each _

            ),

            null

        )

in

    matchedCategory

This assumes your Pattern always has a single * (wildcard) in the middle.

What this does:

  • For each row in Table1, it:
    • Loops through all Patterns in Table2
    • Breaks each pattern at the * into two parts
    • Checks that the Title contains both parts
    • Returns the first matching Category

Example Result

Title

Category

job xx run on

Jobrun

password for id xxx expired

passwordexpiry

 

View solution in original post

3 REPLIES 3
vijaykaali811
Helper I
Helper I

it worked .   but with multiple wildcard in pattern . it will be difficult as number of wildcard is not predictable 

 

vijaykaali811
Helper I
Helper I

Lightening speed answer . thanks 

Shravan133
Super User
Super User

Add Custom Column to Match Patterns

In Table1, add a custom column that looks through each Pattern in Table2, checks if it matches using a basic wildcard logic (we'll treat * as "any characters"), and returns the corresponding Category.

Go to Add Column > Custom Column in Table1 and paste:

let

    currentTitle = [Title],

    matchedCategory =

        List.First(

            List.Transform(

                Table.SelectRows(Table2, each

                    Text.Contains(currentTitle, Text.BeforeDelimiter([Pattern], "*"))

                    and Text.Contains(currentTitle, Text.AfterDelimiter([Pattern], "*"))

                )[Category],

                each _

            ),

            null

        )

in

    matchedCategory

This assumes your Pattern always has a single * (wildcard) in the middle.

What this does:

  • For each row in Table1, it:
    • Loops through all Patterns in Table2
    • Breaks each pattern at the * into two parts
    • Checks that the Title contains both parts
    • Returns the first matching Category

Example Result

Title

Category

job xx run on

Jobrun

password for id xxx expired

passwordexpiry

 

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.