Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!
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?
Solved! Go to Solution.
@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]
)
Text.BeforeDelimiter - PowerQuery M | Microsoft Docs
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!
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"
@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]
)
Text.BeforeDelimiter - PowerQuery M | Microsoft Docs
User | Count |
---|---|
125 | |
106 | |
99 | |
63 | |
62 |
User | Count |
---|---|
135 | |
116 | |
101 | |
71 | |
61 |