Handling errors in Power Query is essential for ensuring data quality and preventing issues that could impact reports and dashboards. Errors can arise due to missing values, incorrect data types, or unexpected transformations. Implementing effective error-handling techniques helps maintain data integrity and improves the reliability of Power BI and Excel reports.
Error Handling in Power Query
Power Query provides various methods to identify, handle, and prevent errors in data transformation. By using built-in functions, conditional logic, and structured error-handling techniques, you can ensure smooth data processing.
1. Identifying Errors in Power Query
Errors can occur due to:
- Invalid Data Types: Mismatched data types cause conversion errors.
- Missing or Null Values: Blank fields can disrupt calculations.
- Division by Zero: Arithmetic operations with zero can trigger errors.
- Lookup Failures: Merging tables with unmatched keys can return errors.
How to Detect Errors:
- Use the “Error Indicator” in Power Query columns.
- Apply the “Keep Errors” or “Remove Errors” options.
- Use the “Try & Otherwise” function in M language.
2. Removing Errors
If errors are not critical, you can remove them from the dataset:
- Remove Errors: Right-click on a column and select “Remove Errors” to filter out problematic rows.
- Filter Data: Use filters to exclude null or faulty values before performing calculations.
= Table.SelectRows(Source, each not List.Contains({null, "Error"}, [ColumnName]))
3. Replacing Errors with Default Values
Instead of removing errors, you can replace them with a default value:
- Right-click on a column and select “Replace Errors”.
- Manually define a replacement value (e.g., 0 for numeric errors).
= Table.ReplaceErrorValues(Source, {{"ColumnName", 0}})
4. Using Try & Otherwise for Error Handling
The Try & Otherwise function in M language captures errors and assigns an alternative value:
= Table.AddColumn(Source, "SafeDivision", each try [Sales] / [Units] otherwise 0)
This ensures that if division by zero occurs, the result is replaced with 0 instead of causing an error.
5. Handling Null and Missing Values
If data contains null values, handle them using conditional replacements:
= Table.ReplaceValue(Source, null, "No Data", Replacer.ReplaceText, {"ColumnName"})
Alternatively, use if-else conditions:
= Table.AddColumn(Source, "UpdatedColumn", each if [ColumnName] = null then "N/A" else [ColumnName])
6. Managing Data Type Errors
Ensure data types are correctly assigned to avoid errors:
- Manually Set Data Types: Use “Change Type” instead of automatic detection.
- Convert Safely: Use the
try
function before applying type conversion.
= Table.TransformColumns(Source, {{"ColumnName", each try Number.From(_) otherwise null}})
7. Handling Errors in Merged Queries
When merging tables, missing matches can result in null values. Use conditional replacements to handle them:
= Table.AddColumn(MergedTable, "ValidData", each if [ColumnFromOtherTable] = null then "Not Found" else [ColumnFromOtherTable])
8. Debugging Errors in Power Query
- Check Applied Steps: Review each transformation step to identify the error source.
- Enable Error Preview: Click on the error message in Power Query to inspect details.
- Use Query Dependencies: Analyze dependencies to find problematic queries.