Forum Discussion
Lookupvalue error
Hey mates,
I have two tables; one is TableExp_M 2 and the other is Table SL 2. I also have a column in TableExp_M 2 where I used this direct query as the table was in direct query mode but its showing an error.
Desc. Service Level =
IF(
'TableExp_M 2'[Shipment No] = "",
BLANK(),
LOOKUPVALUE('Table SL 2'[s], 'Table SL 2'[Row Labels], 'TableExp_M 3'[Service Level_1])
)
The error is like the lookupvalue function can't be used in direct query mode. I also tried to add this column in the datamart itself but it's showing the same issue.
I would need this to be done either in direct query or in power query, please.
Thanks,
Hi Dev-001
In direct query mode, you would not be able to create a calculated column.
You need to use power query merging and conditional column to handle if logic.If you prefer to use a measure instead of a calculated column, you can create a measure that performs the lookup:
Desc. Service Level Measure = IF( ISBLANK(SELECTEDVALUE('TableExp_M 2'[Shipment No])), BLANK(), CALCULATE( MAX('Table SL 2'[s]), FILTER( 'Table SL 2', 'Table SL 2'[Row Labels] = SELECTEDVALUE('TableExp_M 2'[Service Level_1]) ) ) )Hope this helps!!
If this solved your problem, please accept it as a solution and a kudos!!
Best Regards,
Shahariar HafizNeed to place Shipment No , Service Level 1 in table rows or in slicer selection. Other wise selectedvalue will return nothing and in result you will get blank values.
6 Replies
- shafiz_pSuper User
Hi Dev-001
In direct query mode, you would not be able to create a calculated column.
You need to use power query merging and conditional column to handle if logic.If you prefer to use a measure instead of a calculated column, you can create a measure that performs the lookup:
Desc. Service Level Measure = IF( ISBLANK(SELECTEDVALUE('TableExp_M 2'[Shipment No])), BLANK(), CALCULATE( MAX('Table SL 2'[s]), FILTER( 'Table SL 2', 'Table SL 2'[Row Labels] = SELECTEDVALUE('TableExp_M 2'[Service Level_1]) ) ) )Hope this helps!!
If this solved your problem, please accept it as a solution and a kudos!!
Best Regards,
Shahariar Hafiz - vojtechsimaSuper User
hey PQ solution:
custom column:
let shipment = [Shipment No], sl = [Service Level_1], check =if shipment = null then null else #"Table SL 2"{[Row Labels = sl]}[s] in check
whole thing:let Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WCvYwMDBU0lHyyEzPUIrVgQgYAQV8U1MyS3PBQkCeT345XNYErjwWAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"Shipment No" = _t, #"Service Level_1" = _t]), #"Changed Type" = Table.TransformColumnTypes(Source,{{"Shipment No", type text}}), #"Replaced Value" = Table.ReplaceValue(#"Changed Type","",null,Replacer.ReplaceValue,{"Shipment No"}), #"Added Custom" = Table.AddColumn(#"Replaced Value", "sl", each let shipment = [Shipment No], sl = [Service Level_1], check =if shipment = null then null else #"Table SL 2"{[Row Labels = sl]}[s] in check) in #"Added Custom" - FreemanZSuper User
calculated column is not allowed in Direct Query.
check more here:
https://learn.microsoft.com/en-us/power-bi/connect-data/desktop-directquery-about