Bird
Raised Fist0
Power BIbi_tool~5 mins

Calculated tables in Power BI - Step-by-Step Guide

Choose your learning style10 modes available
Introduction
Calculated tables let you create new tables in your data model using formulas. This helps when you want to build tables based on existing data without changing the original source.
When you want to create a summary table from detailed data for easier analysis.
When you need a table that combines data from multiple tables using formulas.
When you want to filter or transform data into a new table without changing source data.
When you want to create a table for specific calculations like distinct values or date ranges.
When you want to build a table that supports relationships with other tables in your model.
Steps
Step 1: Click
- Modeling tab on the ribbon
The Modeling tab options appear
💡 The Modeling tab contains tools for creating and managing tables and measures
Step 2: Click
- New Table button in the Calculations group
A formula bar appears at the top for entering a DAX formula
💡 This is where you write the formula to define your calculated table
Step 3: Type
- formula bar
The formula is entered and the new table preview appears in the Fields pane
💡 Use DAX functions like FILTER, DISTINCT, or VALUES to create your table
Step 4: Press
- Enter key
Power BI creates the calculated table and adds it to the Fields pane
💡 You can now use this table in your reports like any other table
Step 5: Click
- New calculated table in the Fields pane
The table fields are shown and can be used in visuals
💡 Rename the table if needed by right-clicking and selecting Rename
Before vs After
Before
Fields pane shows only original tables: Sales, Customers, Products
After
Fields pane shows original tables plus a new calculated table named 'TopCustomers'
Settings Reference
Formula bar
📍 Top of the Power BI Desktop window after clicking New Table
Enter the DAX formula that defines the calculated table
Default: Empty
Table name
📍 Formula bar before the equals sign
Name your calculated table for easy identification
Default: NewTable
Common Mistakes
Typing a DAX formula with syntax errors
Power BI will show an error and not create the table
Check DAX syntax carefully and use IntelliSense suggestions in the formula bar
Using calculated tables for very large datasets causing slow performance
Calculated tables are computed during data refresh and can slow down the model
Use calculated tables only when necessary and prefer measures or query transformations for large data
Summary
Calculated tables create new tables using formulas based on existing data.
They help simplify analysis by creating custom tables without changing source data.
Always write correct DAX formulas and name tables clearly for easy use.

Practice

(1/5)
1. What is the main purpose of a calculated table in Power BI?
easy
A. To create a new table based on a DAX formula without altering original data
B. To directly edit the source data in the database
C. To visualize data using charts and graphs
D. To export data to Excel automatically

Solution

  1. Step 1: Understand calculated tables

    Calculated tables are created using DAX formulas inside Power BI to generate new tables.
  2. Step 2: Compare with other options

    They do not edit source data, create visuals, or export data directly.
  3. Final Answer:

    To create a new table based on a DAX formula without altering original data -> Option A
  4. Quick Check:

    Calculated tables = new tables from DAX [OK]
Hint: Calculated tables create new data, not change original [OK]
Common Mistakes:
  • Confusing calculated tables with data editing
  • Thinking calculated tables create visuals
  • Assuming calculated tables export data
2. Which of the following is the correct syntax to create a calculated table named TopProducts showing top 5 products by sales?
easy
A. TopProducts = TOPN(5, Products, Products[Sales], DESC)
B. TopProducts = FILTER(Products, Products[Sales] > 5)
C. TopProducts = SUMMARIZE(Products, Products[ProductName])
D. TopProducts = CALCULATE(Products, TOPN(5))

Solution

  1. Step 1: Identify correct DAX function for top rows

    TOPN returns the top N rows based on a column, here top 5 by sales.
  2. Step 2: Check syntax correctness

    TopProducts = TOPN(5, Products, Products[Sales], DESC) uses TOPN(5, Products, Products[Sales], DESC) which is correct syntax for top 5 products by sales.
  3. Final Answer:

    TopProducts = TOPN(5, Products, Products[Sales], DESC) -> Option A
  4. Quick Check:

    TOPN syntax = TopProducts = TOPN(5, Products, Products[Sales], DESC) [OK]
Hint: Use TOPN for top rows with order [OK]
Common Mistakes:
  • Using FILTER instead of TOPN for top rows
  • Incorrect CALCULATE usage for tables
  • Missing order direction in TOPN
3. Given the calculated table:
HighSales = FILTER(Sales, Sales[Amount] > 1000)

What will HighSales contain?
medium
A. Sum of sales Amount greater than 1000
B. All sales records where Amount is less than 1000
C. Error because FILTER cannot be used in calculated tables
D. All sales records where Amount is greater than 1000

Solution

  1. Step 1: Understand FILTER function in calculated tables

    FILTER returns a table with rows meeting the condition, here Amount > 1000.
  2. Step 2: Analyze the condition

    It keeps only sales records where Amount is greater than 1000.
  3. Final Answer:

    All sales records where Amount is greater than 1000 -> Option D
  4. Quick Check:

    FILTER with condition = filtered rows [OK]
Hint: FILTER returns rows matching condition [OK]
Common Mistakes:
  • Thinking FILTER returns aggregated values
  • Confusing greater than with less than
  • Believing FILTER cannot create tables
4. You wrote this calculated table:
RecentSales = FILTER(Sales, Sales[Date] >= TODAY() - 30)

But it gives an error. What is the likely problem?
medium
A. Sales table cannot be filtered in calculated tables
B. FILTER requires aggregation functions inside
C. TODAY() cannot be used in calculated tables because it is dynamic
D. The date comparison operator >= is invalid in DAX

Solution

  1. Step 1: Understand TODAY() in calculated tables

    TODAY() is dynamic and calculated tables are static, so TODAY() causes error.
  2. Step 2: Check other options

    FILTER works without aggregation, >= is valid, and Sales can be filtered.
  3. Final Answer:

    TODAY() cannot be used in calculated tables because it is dynamic -> Option C
  4. Quick Check:

    Dynamic functions disallowed in calculated tables [OK]
Hint: Avoid dynamic functions like TODAY() in calculated tables [OK]
Common Mistakes:
  • Thinking FILTER needs aggregation
  • Misunderstanding comparison operators
  • Assuming all functions work in calculated tables
5. You want to create a calculated table CustomerSalesSummary that shows each customer and their total sales amount, but only for customers with sales above 5000. Which DAX expression correctly achieves this?
hard
A. CustomerSalesSummary = SUMMARIZE(Sales, Sales[CustomerID], "TotalSales", FILTER(Sales[Amount] > 5000))
B. CustomerSalesSummary = FILTER(SUMMARIZE(Sales, Sales[CustomerID], "TotalSales", SUM(Sales[Amount])), [TotalSales] > 5000)
C. CustomerSalesSummary = CALCULATETABLE(Sales, Sales[Amount] > 5000)
D. CustomerSalesSummary = SUMMARIZE(Sales, Sales[CustomerID], "TotalSales", SUM(Sales[Amount])) WHERE TotalSales > 5000

Solution

  1. Step 1: Summarize sales by customer

    SUMMARIZE groups Sales by CustomerID and calculates total sales per customer.
  2. Step 2: Filter summarized table by total sales > 5000

    FILTER applies condition on the summarized table's TotalSales column.
  3. Step 3: Check syntax correctness

    CustomerSalesSummary = FILTER(SUMMARIZE(Sales, Sales[CustomerID], "TotalSales", SUM(Sales[Amount])), [TotalSales] > 5000) correctly nests FILTER around SUMMARIZE with proper syntax.
  4. Final Answer:

    CustomerSalesSummary = FILTER(SUMMARIZE(Sales, Sales[CustomerID], "TotalSales", SUM(Sales[Amount])), [TotalSales] > 5000) -> Option B
  5. Quick Check:

    SUMMARIZE then FILTER = CustomerSalesSummary = FILTER(SUMMARIZE(Sales, Sales[CustomerID], "TotalSales", SUM(Sales[Amount])), [TotalSales] > 5000) [OK]
Hint: Use SUMMARIZE then FILTER for grouped filtered tables [OK]
Common Mistakes:
  • Placing FILTER inside SUMMARIZE incorrectly
  • Using WHERE clause which is invalid in DAX
  • Applying CALCULATETABLE without grouping
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard