Don't miss your chance to take the Fabric Data Engineer (DP-600) exam for FREE! Find out how by attending the DP-600 session on April 23rd (pacific time), live or on-demand.
Learn moreJoin the FabCon + SQLCon recap series. Up next: Power BI, Real-Time Intelligence, IQ and AI, and Data Factory take center stage. All sessions are available on-demand after the live show. Register now
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,
Solved! Go to Solution.
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
Need 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.
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
Need 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.
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"
calculated column is not allowed in Direct Query.
check more here:
https://learn.microsoft.com/en-us/power-bi/connect-data/desktop-directquery-about
Check out the April 2026 Power BI update to learn about new features.
If you have recently started exploring Fabric, we'd love to hear how it's going. Your feedback can help with product improvements.
A new Power BI DataViz World Championship is coming this June! Don't miss out on submitting your entry.
| User | Count |
|---|---|
| 48 | |
| 46 | |
| 41 | |
| 20 | |
| 17 |
| User | Count |
|---|---|
| 69 | |
| 67 | |
| 32 | |
| 27 | |
| 26 |