Dax Function: COALESCE
Reviewed by Neetu Singla — Founder, Lets Viz Technologies — AI & Data Consultant. Last reviewed June 25, 2026.Category: Logical Functions
The COALESCE function in Power BI is a DAX function used to handle null or blank values by returning the first non-blank value from a list of inputs. It ensures data integrity by replacing blank or null values with predefined defaults or alternative values.
Purpose:
- Provides a way to deal with missing data in calculations.
- Ensures that expressions or calculations return meaningful values even when inputs are missing.
Type of Calculations:
- Handles null or blank values by substituting them with alternative values.
- Supports conditional logic to maintain data completeness.
Practical Use Cases:
- Data Cleaning: Replace null values in datasets with default values.
- Default Assignments: Provide fallback values when inputs are unavailable.
- Improved Aggregations: Ensure calculations like sums or averages don’t break due to missing data.
COALESCE(<expression1>, <expression2>, ..., <expressionn>)</expressionn></expression2></expression1>
| Parameter | Type | Description |
|---|
expression1 | Any scalar | The first expression or value to evaluate. |
expression2 | Any scalar | The second expression or value to evaluate if the first is blank or null. |
expressionN | Any scalar | Additional expressions or values to evaluate in order, until a non-blank value is found. |
How Does COALESCE Dax Function Works?
The COALESCE function evaluates each input expression in order. If the current expression is blank or null, it proceeds to the next. It stops at the first non-blank value and returns it. If all inputs are blank, it returns a blank.
Example:
For COALESCE(A, B, C):
- If
Ais not blank, it returnsA. - If
Ais blank, it checksB. IfBis not blank, it returnsB. - If both
AandBare blank, it checksC.
What Does It Return?
The function returns the first non-blank value from the list of provided expressions. If all expressions are blank, the result is blank.
When Should We Use It?
- Data Transformation: Replace null or blank values in a dataset.
- Fallback Mechanisms: Ensure calculations don’t fail by providing default values.
- Dynamic Defaults: Handle user inputs or dynamic values gracefully.
Examples
Basic Usage
Replace a blank value with a default value:
Result = COALESCE(Sales[Discount], 0)
Output: Returns the value of Sales[Discount] if not blank; otherwise, it returns 0.
Column Usage:
Handle missing values in a calculated column:
Adjusted Sales = COALESCE(Sales[Revenue], Sales[Estimated Revenue], 0)
Explanation: Returns Sales[Revenue] if available, or Sales[Estimated Revenue] if Sales[Revenue] is blank, and defaults to 0 if both are blank.
Advanced Usage
Combine with other DAX functions:
Sales Status = COALESCE(Sales[Actual Sales], AVERAGE(Sales[Predicted Sales]), 0)
Explanation: Replaces missing actual sales with the average of predicted sales or 0 if all values are blank.
Tips and Tricks
- Order Matters: Ensure that the most likely non-blank value appears first in the argument list to optimize performance.
- Use in Measures: Ideal for creating robust measures that handle incomplete data gracefully.
- Avoid Overloading: Limit the number of expressions to improve readability and maintain performance.
Performance Impact of COALESCE DAX Function:
- Efficient Evaluation: Stops at the first non-blank value, minimizing unnecessary calculations.
- Impact on Large Datasets: Optimize expression order for datasets with frequent blanks to improve query performance.
Related Functions You Might Need
- IF: Perform conditional checks for specific values.
- IFERROR: Handle errors in expressions by providing fallback values.
- ISBLANK: Check if a value is blank.
- SWITCH: Provide alternative values based on multiple conditions.
Want to Learn More?
For more information, check out the official Microsoft documentation for COALESCE. You can also experiment with this function in your Power BI reports to explore its capabilities.
If you’re looking to unlock the full potential of Power BI and take your data insights to the next level, our expert Power BI consulting services are here to help. Whether you need assistance with implementing advanced DAX functions like the ones discussed here, creating interactive dashboards, or optimizing your data models for better performance, our team of seasoned Power BI consultants is ready to provide tailored solutions for your business. Visit our Power BI Consulting Services page to learn more about how we can empower your organization with data-driven decisions.
It replaces blank or null values with the first non-blank value from a list of expressions.
Yes, you can provide multiple fallback expressions, and it evaluates them in order.
The function returns a blank value if all expressions are blank.
No, it is not case-sensitive and evaluates expressions as written.
Yes, it’s often used in calculated columns to handle missing or default values dynamically.
Common Mistakes When Using COALESCE
One frequent error is confusing COALESCE with IF(ISBLANK()). While both handle blank values, COALESCE is more concise and evaluates multiple fallback expressions in a single call. Replacing nested IF(ISBLANK(A), IF(ISBLANK(B), C, B), A) with COALESCE(A, B, C) is cleaner and easier to maintain.
A subtle trap: COALESCE returns the first non-BLANK value, but it does not treat an empty string ("") as blank. If a column contains empty strings rather than true BLANK values, COALESCE will return the empty string rather than falling through to the next argument. Use NULLIF or an explicit IF check when empty strings and BLANK need the same treatment.
Avoid wrapping COALESCE inside IFERROR as a general safety net. COALESCE already handles BLANK propagation elegantly; IFERROR catches errors, which is a different concern. Mixing the two makes intent unclear. If you need to guard against divide-by-zero errors alongside null fallbacks, keep DIVIDE and COALESCE as separate, explicit layers.
Finally, placing COALESCE around a measure that intentionally returns BLANK -- such as a measure that should show nothing when there is no data -- will mask expected blanks. Only wrap measures in COALESCE when a visible fallback value (like zero or a placeholder label) genuinely improves the user experience.
COALESCE vs IF(ISBLANK) vs IFERROR
| COALESCE | IF(ISBLANK) | IFERROR | |
|---|---|---|---|
| What it catches | BLANK / null | BLANK only | Any DAX error |
| Multiple fallbacks | ✓ up to 254 args | ✗ needs nesting | ✗ needs nesting |
| Short-circuits | ✓ | ✓ | ✓ |
| Handles errors | ✗ errors propagate | ✗ errors propagate | ✓ catches errors |
| Readability | High for multi-fallback | High for single check | High for error guard |
| When to use | Chain of fallback values, all same type | Single BLANK check with a simple fallback | Guard around expressions that may error |
Need Power BI help in a real engagement?
Our team writes DAX like this every day for SaaS finance and ops teams. Refresh monitoring, change requests with a 2-business-day SLA, and a named analyst on retainer — or scoped hourly help if you just need a fix.
Named analyst2-day SLAFrom $5K/mo
