Forum Discussion
Extract part of string before specific character
Hi there,
Im working with a Netflix dataset that has titles (column name [Title]) for shows like "Brooklyn Nine-Nine: Season 3: Greg and Larry (Episode 22)".
For each entry, I want to check against another column (I have a custom column [ContentType] to identify entries as being "TV" instead of "Movie"), and then if they are "TV" entries, I want to extract all characters from the string before the colon : so that I get "Brooklyn Nine-Nine".
Whats the best way to go about this? Im still new to Power BI/Power Query so im not sure how best to accomplish this. M or DAX is fine im assuming its better to do this in power query before loading?
TomJWhite Well, in Power Query you could split the column based on the : but there is also Text.BeforeDelimiter so you could do:
if [ContentType] = "TV" then Text.BeforeDelimiter([Title],":") else [Title]In DAX you would do something like:
Column = IF( [ContentType] = "TV", LEFT([Title],SEARCH(":",[Title])-1), [Title] )
3 Replies
- Greg_Deckler
Community Champion
TomJWhite Well, in Power Query you could split the column based on the : but there is also Text.BeforeDelimiter so you could do:
if [ContentType] = "TV" then Text.BeforeDelimiter([Title],":") else [Title]In DAX you would do something like:
Column = IF( [ContentType] = "TV", LEFT([Title],SEARCH(":",[Title])-1), [Title] ) - AnonymousNot applicable
Hi TomJWhite
Yes, M is more intuitive for text munipulation. You need to observe the data, if it is always to extract the first ":" then it is simple
let Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WcirKz8/OqcxT8MvMS9UFEVYKwamJxfl5CsZWCu5FqekKiXkpCj6JRUWVChquBZnF+SmpCkZGmkqxsQA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Column1 = _t]), #"Changed Type" = Table.TransformColumnTypes(Source,{{"Column1", type text}}), #"Added Custom" = Table.AddColumn(#"Changed Type", "Custom", each Text.BeforeDelimiter([Column1],":")) in #"Added Custom" - atillotsonFrequent Visitor
Hi there,
I've just tried the suggestion from you above for a similar situation but I seem to get the error 'The search Text provided to function 'SEARCH' could not be found in the given text' (see attached) but the "-" character is present (see attached).
Not sure if I am missing something - no "if" component is required because it applies to all rows in the table so just took the nested function from within. Thanks!