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

Get certified in Microsoft Fabric—for free! For a limited time, the Microsoft Fabric Community team will be offering free DP-600 exam vouchers. Prepare now

Reply
mwild
Frequent Visitor

String Extract based on criteria

I have a table and one column contains free text.  I'm looking to add a column which will search the free text and extract anything which has a letter followed by 5 numbers.

 

For example - the below would be extracted:


D98765

d12345

D 54821

d 65411

This could be anywhere within the string of text.  Is this possible?

1 ACCEPTED SOLUTION
moizsherwani
Continued Contributor
Continued Contributor

@mwild  ***Made a tweak to the code***

The following works. I will let you tweak the code further if you need to so I am not doing all your homework 😂

 

StringMatch = 
VAR NoBlankFreeText =
    SUBSTITUTE ( 'Sample Data'[FreeText], " ", "", 1 )
VAR UpperD =
    FIND ( "D", NoBlankFreeText, 1, BLANK () )
VAR LowerD =
    FIND ( "d", NoBlankFreeText, 1, BLANK () )
VAR PositionD =
    IF ( ISNUMBER ( UpperD ), UpperD, LowerD)
VAR CheckNumbers =
    ISERROR (
        ISNUMBER ( VALUE ( MID ( NoBlankFreeText, PositionD + 1, 5 ) ) )
    )
RETURN 
    IF (
        NOT ( CheckNumbers ),
        MID ( NoBlankFreeText, PositionD, 6),
        "No Match"
    )

 

 

moizsherwani_0-1632236672765.png

 

 

Thanks,

Moiz
Was I able to answer your question? Mark my post as a solution to help others. Kudos if you liked the solution.

View solution in original post

7 REPLIES 7
mh2587
Super User
Super User

With combination of LEFT or RIGHT function


Did I answer your question? If so, please mark my post as a solution!


Proud to be a Super User!




LinkedIn Icon
Muhammad Hasnain



mh2587
Super User
Super User

Or you can use CONTAINSSTRING function e.g 

MyCalculatedColumn = If(CONTAINSSTRING([TARGETCOLUMN];"searchforthis");TRUE();FALSE())

 


Did I answer your question? If so, please mark my post as a solution!


Proud to be a Super User!




LinkedIn Icon
Muhammad Hasnain



moizsherwani
Continued Contributor
Continued Contributor

I am not sure how this will work when the end goal is "any letter followed by any numbers" when the letter and the numbers could be anything, e.g. it can be "Z 98765" or "b34561" or worse "!@#@!D48202@#!@".

Thanks,

Moiz
Was I able to answer your question? Mark my post as a solution to help others. Kudos if you liked the solution.

The letter will always be "D" or "d"
There may be a space (or may not be) and then 5 numbers between 0 and 9

moizsherwani
Continued Contributor
Continued Contributor

@mwild  ***Made a tweak to the code***

The following works. I will let you tweak the code further if you need to so I am not doing all your homework 😂

 

StringMatch = 
VAR NoBlankFreeText =
    SUBSTITUTE ( 'Sample Data'[FreeText], " ", "", 1 )
VAR UpperD =
    FIND ( "D", NoBlankFreeText, 1, BLANK () )
VAR LowerD =
    FIND ( "d", NoBlankFreeText, 1, BLANK () )
VAR PositionD =
    IF ( ISNUMBER ( UpperD ), UpperD, LowerD)
VAR CheckNumbers =
    ISERROR (
        ISNUMBER ( VALUE ( MID ( NoBlankFreeText, PositionD + 1, 5 ) ) )
    )
RETURN 
    IF (
        NOT ( CheckNumbers ),
        MID ( NoBlankFreeText, PositionD, 6),
        "No Match"
    )

 

 

moizsherwani_0-1632236672765.png

 

 

Thanks,

Moiz
Was I able to answer your question? Mark my post as a solution to help others. Kudos if you liked the solution.
mh2587
Super User
Super User

You can use CONTAIN function


Did I answer your question? If so, please mark my post as a solution!


Proud to be a Super User!




LinkedIn Icon
Muhammad Hasnain



moizsherwani
Continued Contributor
Continued Contributor

You can do this using regular expression (using R or Python) in the query editor, Curbal here explains it really well

 

https://www.youtube.com/watch?v=9E3VsvFAge4

 

Regards,

 

Moiz

If this post helps, please "Accept" it as Solution to help other members find it.

Thanks,

Moiz
Was I able to answer your question? Mark my post as a solution to help others. Kudos if you liked the solution.

Helpful resources

Announcements
OCT PBI Update Carousel

Power BI Monthly Update - October 2024

Check out the October 2024 Power BI update to learn about new features.

September Hackathon Carousel

Microsoft Fabric & AI Learning Hackathon

Learn from experts, get hands-on experience, and win awesome prizes.

October NL Carousel

Fabric Community Update - October 2024

Find out what's new and trending in the Fabric Community.