Forum Discussion
mwild
4 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...
- 4 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
4 years agoSuper User
Or you can use CONTAINSSTRING function e.g
MyCalculatedColumn = If(CONTAINSSTRING([TARGETCOLUMN];"searchforthis");TRUE();FALSE())
- moizsherwani4 years agoContinued 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@#!@".
- mwild4 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- moizsherwani4 years agoContinued 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" )