Forum Discussion
mwild
5 years agoFrequent 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 bel...
- 5 years ago
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" )
mh2587
Super User
5 years agoOr you can use CONTAINSSTRING function e.g
MyCalculatedColumn = If(CONTAINSSTRING([TARGETCOLUMN];"searchforthis");TRUE();FALSE())
- moizsherwani5 years ago
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@#!@".
- mwild5 years agoFrequent Visitor
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- moizsherwani5 years ago
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" )