The HASONEVALUE function in DAX is used to determine if a column has a single distinct value in the current context. This can be particularly useful in scenarios involving measures, where you want to ensure that a calculation is performed only when there is exactly one distinct value present in the column.
Syntax
dax
HASONEVALUE(<column>)
- <column>: The column you want to check for a single distinct value.
Return Value
- TRUE: If the column has exactly one distinct value in the current context.
- FALSE: If the column has zero or more than one distinct value in the current context.
Common Use Cases
- Conditional Measures: Create measures that return specific values or calculations only when a single value is present.
- Dynamic Titles: Adjust titles or text in visuals based on whether a single value is selected in a slicer or filter.
- Error Handling: Prevent errors in calculations by checking for single value contexts.
Example Scenario
Imagine you have a table called Sales with the columns ProductID, Quantity, and SalesAmount. You want to create a measure that calculates the average sales amount, but only if a single product is selected. If multiple products are selected, the measure should return a message indicating that the selection is ambiguous.
Step-by-Step Example
- Create Measure: Go to the Sales table and create a new measure with the following DAX formula:
dax
Average Sales Amount =
IF(
HASONEVALUE(Sales[ProductID]),
AVERAGE(Sales[SalesAmount]),
"Please select a single product"
)
- Result:
- If a single product is selected, the measure returns the average sales amount for that product.
- If multiple products are selected, the measure returns the text “Please select a single product”.
Detailed Example
Let’s say we have a table Products with columns ProductID and ProductName. You want to display the total sales amount only if a single product is selected. Otherwise, you want to display a warning message.
- Create Measure:
dax
Total Sales Amount =
IF(
HASONEVALUE(Products[ProductName]),
SUM(Sales[SalesAmount]),
"Please select a single product"
)
- Use in Visual: Add this measure to a card visual in Power BI.
- When a single product is selected, the card will display the total sales amount for that product.
- When multiple products are selected or no product is selected, the card will display the warning message.
Practical Tips
- Combine with Other Functions:
HASONEVALUEcan be combined with other DAX functions likeIF,VALUES, andSELECTEDVALUEfor more complex logic. - Debugging: Use
HASONEVALUEto debug and ensure the correct context is being applied in complex calculations.
Additional Example
Suppose you want to create a dynamic measure that shows the sales amount for a selected category. If multiple categories are selected, it should show a different message.
dax
Category Sales Amount =
IF(
HASONEVALUE(Categories[CategoryName]),
SUM(Sales[SalesAmount]),
"Multiple categories selected"
)
Conclusion
The HASONEVALUE function is a powerful tool in DAX for managing calculations and ensuring they only execute under specific conditions. By leveraging HASONEVALUE, you can create more dynamic, responsive, and error-free reports in Power BI.

Ankit Srivastava is an IT trainer, technology educator, and digital skills mentor with expertise in programming, data analytics, AI, and software development. He has successfully trained thousands of learners, with more than 10,000 student enrollments on Udemy. His practical teaching approach empowers students and professionals to build in-demand technical skills. Colorstech channel where Ankit posts video tutorials has more than 8000 Subscribers.