When you start working seriously with Power BI and DAX, one of the first questions you’ll ask is:
“How do I fetch a value from another table without creating a relationship?”
That’s exactly where LOOKUPVALUE comes in.
The LOOKUPVALUE function allows you to retrieve a value from one table based on a matching condition in another table. Think of it as the DAX equivalent of VLOOKUP or XLOOKUP in Excel, but designed for Power BI’s data model.
In this article, we’ll break it down simply, practically, and honestly — including when you should use it and when you shouldn’t.
What is LOOKUPVALUE?
LOOKUPVALUE searches a column in a table and returns a corresponding value when one or more conditions are met.
Basic Syntax:
LOOKUPVALUE (
Result_Column,
Search_Column1, Search_Value1,
[Search_Column2, Search_Value2, …]
)
In plain English:
Result_Column → What you want to return
Search_Column → Where Power BI should search
Search_Value → What it should match
A Simple Real-World Example
Imagine you have two tables named sales_fact and product_lookup as seen below
![1]()
![2]()
and you want to bring ProductName into the Sales table. To achieve these, we can leverage the LOOKUPVALUE PowerBI DAX function.
To implement:
Right-click sales_fact and select New column
In the newly added column execute the DAX formula below:
Product Name =
LOOKUPVALUE(
product_lookup[ProductName],
product_lookup[ProductID],
sales_fact[ProductID]
)
Commit the formula by pressing Enter.
As seen below, the corresponding product name that matched the Product ID is returned. This is similar to using the legacy VLOOKUP and new XLOOKUP function in Microsoft Excel
![3]()
When Should You Use LOOKUPVALUE?
LOOKUPVALUE is most useful when:
You don’t have a relationship between tables
You’re working with flat or imported data
You need a quick calculated column
You’re dealing with non-star schema data
Common scenarios:
LOOKUPVALUE vs RELATED (Very Important)
This is where many people go wrong.
Use RELATED when:
Use LOOKUPVALUE when:
👉 Rule of thumb:
If a relationship exists, don’t use LOOKUPVALUE.
In conclusion, LOOKUPVALUE is not a replacement for good data modeling — but it’s an excellent tactical tool when used correctly.