Power BI: VALUES with SUMMARIZE in DAX
Power BI
Oct 23, 2025 7:17 AM

Power BI: VALUES with SUMMARIZE in DAX

Microsoft expert guide: DAX deep dive on using VALUES with SUMMARIZE versus SUMMARIZECOLUMNS for Power BI model clarity

Key insights

  • SUMMARIZE groups rows by one or more columns to build a summary table.
    Use it when you need custom grouping logic that can iterate over a table expression.
  • VALUES returns distinct values for a column and includes blank entries that arise from missing or broken relationships.
    Place VALUES inside SUMMARIZE when you must ensure those blanks appear in the result.
  • Use VALUES inside SUMMARIZE when relationships are incomplete or you need explicit rows for missing keys (an invalid relationship scenario).
    This prevents hidden aggregation errors and keeps totals accurate.
  • SUMMARIZECOLUMNS does not accept a table expression for grouping and manages filters differently, so you cannot pass a VALUES table into it the same way.
    SUMMARIZECOLUMNS expects column references and builds its own filter context, which limits the VALUES pattern.
  • Prefer SUMMARIZECOLUMNS for simpler expressions and better performance when you don’t need to force blank rows.
    Choose SUMMARIZE + VALUES when you must control blank inclusion or handle tricky relationship logic.
  • Test outputs in both approaches and inspect totals to confirm behavior of the filter context and blanks.
    Keep formulas simple, comment intent, and validate results on edge cases with missing keys.

Overview of the SQLBI Video

The YouTube video from SQLBI explains when and why to use VALUES inside the SUMMARIZE function in DAX, while also clarifying why SUMMARIZECOLUMNS does not offer the same option. The presenter frames the topic as a practical pattern for Power BI and Analysis Services users who need precise control over grouping and filtering. Consequently, the video targets BI developers working with complex models that include blanks or invalid relationships. As a result, the guidance seeks to reduce common aggregation mistakes and to improve measure reliability.


Technical Summary and Key Concepts

The video defines SUMMARIZE as a function that creates grouped tables, while VALUES returns distinct values from a column and explicitly includes blanks when present. By combining these two functions, authors can force group iterations that consider missing keys or rows with invalid relationships. In contrast, the video explains that SUMMARIZECOLUMNS follows different semantics and lacks the direct slot for injecting a VALUES table, which explains the need for the pattern discussed. Therefore, the recommendation is contextual: use VALUES inside SUMMARIZE when blanks must be preserved for accurate aggregations.


Advantages and Practical Effects

First, the video highlights that using VALUES inside SUMMARIZE ensures blank or missing keys are not silently ignored, which can otherwise lead to subtle errors in totals and filters. Moreover, presenters note that this control improves the correctness of conditional calculations, such as distributing sales across geography when some relationships are incomplete. As a result, models become more transparent because users can see unexpected blank-driven rows rather than losing them silently in summary outputs. Thus, the technique helps teams detect data quality issues while producing reliable measures.


Tradeoffs and Alternative Patterns

Despite the benefits, the video also addresses tradeoffs: using VALUES inside SUMMARIZE can add complexity and reduce readability for people unfamiliar with advanced DAX idioms. Furthermore, this pattern may have performance implications in very large models because it alters how row context and filter context interact during evaluation. Consequently, the speaker suggests weighing clarity and maintainability against the need to include blanks, and to profile queries before standardizing the approach. In short, the pattern is powerful but should be applied judiciously and documented for future maintainers.


Challenges and Best Practices

The video stresses several real-world challenges, including differences between model types and function behavior changes across engine updates. For example, DAX behavior in Power BI and Analysis Services can diverge subtly, so tests should run in the target environment. Additionally, the presenter recommends keeping measures modular, explaining logic with comments, and using query profiling tools to spot performance regressions. Thus, following these best practices helps balance correctness with maintainability.


Implications for BI Teams and Conclusion

For BI teams, the video suggests adopting the VALUES inside SUMMARIZE pattern selectively, especially when data models contain sparse joins or incomplete keys. Consequently, teams should train developers in the difference between SUMMARIZE and SUMMARIZECOLUMNS so they can choose the appropriate function for each scenario. Finally, the video positions this technique as part of evolving DAX best practices that increase both precision and transparency in reports, though teams must manage complexity and test performance before wide adoption.


Power BI - Power BI: VALUES with SUMMARIZE in DAX

Keywords

DAX VALUES SUMMARIZE, VALUES in SUMMARIZE Power BI, Power BI SUMMARIZE examples, DAX table functions tutorial, Using VALUES for grouping DAX, SUMMARIZE vs SUMMARIZECOLUMNS, VALUES function best practices, DAX performance with VALUES