How to Use the Power BI DAX function CALCULATETABLE

One of the most useful DAX functions in Power BI is CALCULATETABLE. This function provides a way to create a new table that is a filtered version of an existing table, based on one or more conditions. In this article, we’ll explore how to use the CALCULATETABLE function in Power BI, with examples and best practices.

Syntax and Parameters of the CALCULATETABLE Function

The syntax for the CALCULATETABLE function is as follows:

CALCULATETABLE(❰table❱, ❰filter1❱, ❰filter2❱,...)

The first parameter is the name of the table to be filtered. The subsequent parameters are one or more filter expressions, which can be either a column reference, a Boolean expression, or an expression that returns a table.

Here is an example of using the CALCULATETABLE function to filter a table based on a Boolean expression:



SalesTable[Region] = "West" && SalesTable[Year] = 2020


In this example, we are creating a new table called FilteredTable that contains only the records from the SalesTable where the Region is “West” and the Year is 2020.

Best Practices for Using the CALCULATETABLE Function

When using the CALCULATETABLE function in Power BI, there are a number of best practices to keep in mind.

1. Use Filter Context to Control the Scope of the Calculation

One of the key concepts in DAX is the idea of filter context. Filter context refers to the set of filters that are applied to a calculation, based on the context in which it is evaluated.

The CALCULATETABLE function respects the filter context of the calculation in which it is used. This means that the filter expressions applied in the CALCULATETABLE function are evaluated in the context of the current filter context.

For example, if we have a visual that is filtered to show only sales data for the year 2020, and we use the CALCULATETABLE function with a filter expression on the SalesTable[Region] column, the resulting table will only contain records for the year 2020 and the selected region(s).

2. Use Boolean Expressions to Filter Columns

In the example above, we used a Boolean expression to filter the SalesTable based on the Region and Year columns. This is a powerful and flexible way to filter data, especially when combined with other DAX functions like IF and SWITCH.

For example, we could use the following expression to create a new column in the SalesTable that indicates whether a sale was made by a new or returning customer:

NewOrReturning = IF(SalesTable[CustomerType] = "New", "New", "Returning")

3. Combine CALCULATETABLE with Other DAX Functions for More Complex Calculations

The CALCULATETABLE function can be combined with other DAX functions to create more complex calculations based on your data.

For example, we could use the following expression to create a new table that shows the total sales for each product category, broken down by year:





"TotalSales", SUM(SalesTable[SalesAmount])


SalesTable[Region] = "West"


This expression uses the SUMMARIZECOLUMNS function to group the SalesTable by Year and Products[Category], and then calculates the total sales for each group using the SUM function. The resulting table is then filtered to only show data for the “West” region.

The CALCULATETABLE function is a powerful tool for filtering and aggregating data in Power BI. By understanding how to use this function and following best practices, you can create complex and meaningful calculations based on your data.

Power BI DAX Training Courses by G Com Solutions (0800 998 9248)

Upcoming Courses

24-26 Oct 23 (London or Online)

Contact Us


    Your Name (required)


    Email (required)


    Training Course(s)

    Your Message

    Upload Example Document(s) (Zip multiple files)