Table of Contents
Introduction: Understanding Table Manipulation in Power BI
The ability to dynamically construct and manipulate data tables is absolutely fundamental for advanced data modeling within the Power BI environment. While tools like measures and calculated columns excel at aggregation and row-level calculations within existing tables, complex scenarios often demand the creation of a completely new table based exclusively on a specific subset of the source data. This new, materialized table might be required for focused visualization, setting up intricate relationships, or optimizing performance for subsequent calculations. This necessity highlights the power of combining key table functions in the DAX language. Understanding how to integrate the SUMMARIZE function with the FILTER function provides analysts with the capability to execute sophisticated filtering operations that transcend the scope of simple visual or page-level filters, resulting in a cleaner, highly tailored data model ready for complex analysis.
The core objective of this technique is to efficiently reduce the analytical scope of a large dataset by focusing only on rows and columns that fulfill predefined criteria. For example, imagine dealing with a multi-year transactional ledger where your current reporting needs are strictly limited to sales data from the last fiscal quarter pertaining to a specific geographical region. Creating a summarized and filtered table is the most effective and performant approach. This meticulous process not only dramatically improves query performance by minimizing the amount of data processed but also significantly simplifies the creation of subsequent measures, as they operate on a smaller, inherently relevant dataset. We will explore the precise DAX syntax required to achieve this specific filtering objective, granting granular control over the structure and content of the resulting materialized table.
The Core Functions: SUMMARIZE vs. FILTER
Before utilizing these functions in combination, it is crucial to establish a clear understanding of their distinct roles within the DAX language. The `SUMMARIZE` function is designed primarily to return a summary table from a source input, typically grouping data based on specified columns and calculating aggregates. However, in the context of creating a filtered subset, its role shifts subtly to that of **column projection**. It allows the developer to precisely define the structure and scope of the output table by selecting only the necessary columns from the source table. This capability is essential because it effectively sets the stage, ensuring that the subsequent filtering operation is applied only to the relevant fields, thus making the resulting table structure predictable and clean.
Conversely, the `FILTER` function is recognized as a key **iterator function** in DAX, whose singular purpose is to reduce the number of rows in the table provided as its input. It evaluates a `Boolean expression` against every single row of the input table, retaining only those rows for which the expression evaluates to TRUE. When these two functions are nested, we utilize `SUMMARIZE` internally to define the exact column structure of the intermediate table, and then we wrap this operation within `FILTER` to apply the required row-level criteria. This nesting pattern is highly efficient because the filtering mechanism works directly on the pre-selected column set defined by the inner function.
Mastering the Combined DAX Syntax
The syntax for combining these powerful table functions is logical and follows the standard nested pattern common throughout DAX, where the output of an inner function serves as the input for the outer function. Since SUMMARIZE inherently returns a table, it perfectly satisfies the requirement for the first argument of the FILTER function. The resulting expression is powerful: it allows the data modeler to first select the desired columns (the projection) and then apply the necessary row context filter (the restriction), enabling the creation of a robust and highly targeted calculated table. This method is preferred when the objective is to permanently materialize a filtered subset of data within the model.
You can utilize the following standard syntax to integrate the SUMMARIZE function inside the FILTER function, resulting in a new calculated table within your Power BI model. This structure ensures a clean execution flow where the necessary columns are selected first, preventing the filtering condition from being unnecessarily applied to columns that will not be included in the final output:
Summary Table = FILTER(
SUMMARIZE(my_data, my_data[Team], my_data[Points], my_data[Position]),
my_data[Team] = "A")
This formula executes two critical operations sequentially. First, the inner `SUMMARIZE` call generates an intermediate table that precisely contains only the Team, Points, and Position columns from the source table named my_data. Second, the outer `FILTER` function iterates over this freshly created intermediate table. It evaluates the condition defined in its second argument—specifically, checking if the value in the Team column is equal to “A”. The final result is a new calculated table named Summary Table, containing the specified columns and restricted exclusively to the rows relevant to Team A, providing a clean, analytical focus.
Practical Application: Focusing on Specific Data Subsets
To fully appreciate the utility of this combined approach, let us consider a common business scenario involving performance tracking, such as sports analytics. Assume we have a comprehensive source table named my_data that captures extensive details about numerous basketball players, encompassing their names, associated teams, positions, and various performance metrics, including points scored. Our immediate analytical requirement is to generate a highly focused report detailing only the performance metrics (Points and Position) for players specifically assigned to **Team A**, intentionally excluding all data related to other teams from this specific analysis. This focus allows for dedicated reporting and dashboard creation for one specific team subset.
The original my_data table, which serves as the foundation for our DAX operation, contains a mixture of teams and attributes that must be meticulously parsed and filtered down to the required subset. This initial complexity necessitates the use of advanced table construction techniques to isolate the relevant data points:

Our goal is to use the combined SUMMARIZE and FILTER functions to create a new, persistent calculated table that materializes the values from the Team, Position, and Points columns exclusively for players belonging to Team A. This method is exceptionally powerful because it fixes the filtered data set within the model, making it readily available for complex analysis, relationship modeling, and reporting without the need to continuously re-apply visual filters across multiple pages or visualizations. This materialization step ensures data consistency and improved query times whenever referencing the specific Team A subset.
Implementation Walkthrough in Power BI Desktop
Implementing this combined table function must be executed directly within the Power BI Desktop environment, specifically utilizing the feature designed for creating new calculated tables. It is crucial to distinguish this procedure from creating measures or calculated columns, as the result is a fully materialized table that resides alongside your imported data tables in the data model view, immediately available for relationship creation and visualization purposes.
To begin the process of creating this new calculated table, follow these steps within the Data view or Model view of Power BI Desktop:
- Navigate to the Table tools tab located prominently on the ribbon interface at the top of the application window.
- Click the New table icon. This action immediately opens the DAX formula bar, prompting the user to define the calculated table using an appropriate table-returning expression.
The image below illustrates the location of the essential button required for defining a new table, which serves as the gateway to utilizing advanced table construction functions such as SUMMARIZE and FILTER:

Next, input the complete formula into the formula bar. This expression first uses `SUMMARIZE` to define the structural output by including the Team, Points, and Position columns, and then applies the `FILTER` to restrict the resulting rows to where the Team column precisely equals “A”:
Summary Table = FILTER(
SUMMARIZE(my_data, my_data[Team], my_data[Points], my_data[Position]),
my_data[Team] = "A")Upon successful execution, a new table named Summary Table will be created. This table contains the values from the three specified columns (Team, Points, Position) from the original table, filtered exclusively for the rows where the Team column is equal to A. This materialized table provides a clean, focused dataset for Team A’s performance, ready for immediate use in reporting and relationship establishment:

Extending Functionality: Handling Multiple Conditions
The true power of the FILTER function becomes apparent when dealing with complex analytical scenarios that require more than a single constraint. It is often necessary to apply multiple logical criteria simultaneously to achieve the desired level of data specificity. When wrapping the SUMMARIZE function within the FILTER function, you can seamlessly integrate multiple conditions using the standard **logical operators** available in DAX, such as the logical AND (&&) or the logical OR (||).
For instance, consider a scenario where the requirement is not just to find players on Team A, but specifically those players who also achieved a high-performance threshold—say, scoring more than 20 points. To successfully implement this layered filtering, we must connect the two distinct conditions within the filter expression using the logical AND operator. This ensures that a row is included in the final Summary Table only if it satisfies both the team affiliation criteria AND the performance score criteria, allowing us to zoom in on the elite, high-performing segment of a specific team.
The following syntax demonstrates how to filter the intermediate table for rows where the Team column is equal to A AND the Points column value is strictly greater than 20. Note the use of the `&&` operator to enforce that both conditions must be true:
Summary Table = FILTER(
SUMMARIZE(my_data, my_data[Team], my_data[Points], my_data[Position]),
my_data[Team] = "A" && my_data[Points] > 20)Executing this advanced formula yields an even more refined output table, isolating only the elite performers within Team A. As illustrated below, only the rows that meet both the team criteria and the performance metric are included. This demonstrates the versatility of combining SUMMARIZE and FILTER to satisfy intricate business logic demands. This composite function allows analysts to filter using as many conditions and logical operators as their analysis requires, offering unmatched precision in data subset creation.

Summary and Next Steps
Mastering the effective combination of the SUMMARIZE and FILTER functions represents a critical milestone for any professional Power BI data modeler. This powerful technique provides a mechanism for creating precise, calculated tables that are perfectly tailored to specific analytical requirements, thereby significantly enhancing data processing performance and simplifying subsequent report development. By systematically defining the necessary column structure first with SUMMARIZE and subsequently restricting the rows with FILTER, data analysts gain unparalleled, explicit control over their materialized data subsets, ensuring both accuracy and relevance in their dashboards and reporting solutions.
It is important to remember the nuanced role of SUMMARIZE in this context: while its traditional use often involves aggregation, here its primary function is **column projection**—selecting which fields will be carried forward to the output table. The heavy lifting of row restriction and condition evaluation is handled exclusively by FILTER, which is highly capable of managing complex logical conditions involving multiple constraints. Leveraging these materialized calculated tables is a cornerstone of advanced DAX data modeling practices, leading to more robust, efficient, and scalable analytical solutions within the Power BI environment.
Note: You can find the complete documentation for the SUMMARIZE function in DAX.
Additional Resources for Power BI Mastery
The following resources and tutorials explain how to perform other common tasks in Power BI and further your expertise in DAX table functions and context transitions:
Exploring the CALCULATE function for dynamically modifying filter context.
Creating efficient and optimized relationships between calculated tables and source tables.
Advanced techniques for data cleansing and transformation using Power Query.
Understanding Row Context and Filter Context in complex measure development and iteration.
Cite this article
Mohammed looti (2025). Learning to Create Dynamic Tables: Using SUMMARIZE and FILTER in Power BI. PSYCHOLOGICAL STATISTICS. Retrieved from https://statistics.arabpsychology.com/power-bi-use-summarize-with-filter/
Mohammed looti. "Learning to Create Dynamic Tables: Using SUMMARIZE and FILTER in Power BI." PSYCHOLOGICAL STATISTICS, 12 Nov. 2025, https://statistics.arabpsychology.com/power-bi-use-summarize-with-filter/.
Mohammed looti. "Learning to Create Dynamic Tables: Using SUMMARIZE and FILTER in Power BI." PSYCHOLOGICAL STATISTICS, 2025. https://statistics.arabpsychology.com/power-bi-use-summarize-with-filter/.
Mohammed looti (2025) 'Learning to Create Dynamic Tables: Using SUMMARIZE and FILTER in Power BI', PSYCHOLOGICAL STATISTICS. Available at: https://statistics.arabpsychology.com/power-bi-use-summarize-with-filter/.
[1] Mohammed looti, "Learning to Create Dynamic Tables: Using SUMMARIZE and FILTER in Power BI," PSYCHOLOGICAL STATISTICS, vol. X, no. Y, ص Z-Z, November, 2025.
Mohammed looti. Learning to Create Dynamic Tables: Using SUMMARIZE and FILTER in Power BI. PSYCHOLOGICAL STATISTICS. 2025;vol(issue):pages.