Bird
Raised Fist0
Power BIbi_tool~10 mins

Date table creation in Power BI - Cell-by-Cell Formula Trace

Choose your learning style10 modes available
Sample Data

This is a simple date table showing dates from January 1 to January 4, 2024, with columns for Year, Month, and Day extracted from the Date.

CellValue
A1Date
A22024-01-01
A32024-01-02
A42024-01-03
A52024-01-04
B1Year
B22024
B32024
B42024
B52024
C1Month
C2January
C3January
C4January
C5January
D1Day
D21
D32
D43
D54
Formula Trace
DateTable = ADDCOLUMNS(CALENDAR(DATE(2024,1,1), DATE(2024,1,4)), "Year", YEAR([Date]), "Month", FORMAT([Date], "MMMM"), "Day", DAY([Date]))
Step 1: CALENDAR(DATE(2024,1,1), DATE(2024,1,4))
Step 2: ADDCOLUMNS(..., "Year", YEAR([Date]))
Step 3: ADDCOLUMNS(..., "Month", FORMAT([Date], "MMMM"))
Step 4: ADDCOLUMNS(..., "Day", DAY([Date]))
Step 5: Final DateTable
Cell Reference Map
    A        B       C        D
1 | Date   | Year  | Month  | Day  |
2 | 2024-01-01 | 2024 | January | 1   |
3 | 2024-01-02 | 2024 | January | 2   |
4 | 2024-01-03 | 2024 | January | 3   |
5 | 2024-01-04 | 2024 | January | 4   |
The formula uses the Date column as the base and extracts Year, Month, and Day from it to fill columns B, C, and D.
Result
    A        | B    | C       | D
-----------------------------------
1 | Date     | Year | Month   | Day
2 | 2024-01-01 | 2024 | January | 1
3 | 2024-01-02 | 2024 | January | 2
4 | 2024-01-03 | 2024 | January | 3
5 | 2024-01-04 | 2024 | January | 4
The final date table shows each date with its corresponding year, month name, and day number in separate columns.
Sheet Trace Quiz - 3 Questions
Test your understanding
What does the CALENDAR function do in this formula?
AFormats the month name
BCreates a list of dates between two given dates
CCalculates the year from a date
DExtracts the day number
Key Result
ADDCOLUMNS adds calculated columns (Year, Month, Day) to a date range generated by CALENDAR.

Practice

(1/5)
1. What is the main purpose of creating a date table in Power BI?
easy
A. To calculate sales totals
B. To store customer names
C. To create charts automatically
D. To organize dates for easy filtering and analysis

Solution

  1. Step 1: Understand the role of a date table

    A date table provides a structured list of dates to use in time-based analysis.
  2. Step 2: Identify the correct purpose

    It helps with filtering, grouping, and calculating time intelligence functions.
  3. Final Answer:

    To organize dates for easy filtering and analysis -> Option D
  4. Quick Check:

    Date table = Organize dates [OK]
Hint: Date tables help organize and filter dates easily [OK]
Common Mistakes:
  • Confusing date table with data tables like sales or customers
  • Thinking date table creates charts automatically
  • Assuming date table stores non-date data
2. Which DAX function is used to create a basic date table with a continuous range of dates?
easy
A. CALCULATE()
B. CALENDAR()
C. FILTER()
D. SUMMARIZE()

Solution

  1. Step 1: Recall DAX functions for date tables

    CALENDAR() creates a table with dates from a start to an end date.
  2. Step 2: Identify the correct function

    CALCULATE() modifies filter context, FILTER() filters rows, SUMMARIZE() groups data, so they don't create date tables.
  3. Final Answer:

    CALENDAR() -> Option B
  4. Quick Check:

    CALENDAR() = create date range [OK]
Hint: Use CALENDAR() to generate date ranges [OK]
Common Mistakes:
  • Using CALCULATE() instead of CALENDAR()
  • Confusing FILTER() with date creation
  • Trying to use SUMMARIZE() to create dates
3. Given this DAX code to create a date table:
DateTable = CALENDAR(DATE(2023,1,1), DATE(2023,1,3))

What will be the number of rows in DateTable?
medium
A. 3
B. 2
C. 4
D. 1

Solution

  1. Step 1: Understand CALENDAR date range

    CALENDAR includes both start and end dates in the table.
  2. Step 2: Count dates from Jan 1 to Jan 3, 2023

    Dates are Jan 1, Jan 2, and Jan 3, total 3 rows.
  3. Final Answer:

    3 -> Option A
  4. Quick Check:

    Inclusive dates count = 3 [OK]
Hint: Count both start and end dates in CALENDAR [OK]
Common Mistakes:
  • Counting only start or end date, missing inclusive range
  • Assuming CALENDAR excludes end date
  • Miscounting days in the range
4. You wrote this DAX to add a Year column to your date table:
Year = YEAR(DateTable[Date])

But Power BI shows an error. What is the likely problem?
medium
A. You must create the calculated column inside the date table, not separately
B. The column name 'Year' conflicts with a reserved word
C. You cannot add calculated columns to date tables
D. The YEAR function requires a table, not a column

Solution

  1. Step 1: Understand calculated columns in Power BI

    Calculated columns must be created inside the table they belong to, not as separate measures.
  2. Step 2: Identify the error cause

    Writing 'Year = YEAR(DateTable[Date])' outside the table context causes error; it should be added as a new column within DateTable.
  3. Final Answer:

    You must create the calculated column inside the date table, not separately -> Option A
  4. Quick Check:

    Calculated columns belong inside their table [OK]
Hint: Add calculated columns inside the table, not separately [OK]
Common Mistakes:
  • Trying to create calculated columns as standalone measures
  • Using reserved words without renaming
  • Misunderstanding YEAR function input
5. You want to create a date table from January 1, 2022 to December 31, 2023, including columns for Year, Month Number, and Month Name. Which DAX expression correctly creates this date table with these columns?
hard
A. DateTable = CALENDAR(DATE(2022,1,1), DATE(2023,12,31)) ADDCOLUMNS("Year", YEAR([Date]), "MonthNumber", MONTH([Date]), "MonthName", FORMAT([Date], "MMMM"))
B. DateTable = CALENDAR(DATE(2022,1,1), DATE(2023,12,31)) + ADDCOLUMNS("Year", YEAR([Date]), "MonthNumber", MONTH([Date]), "MonthName", FORMAT([Date], "MMMM"))
C. DateTable = ADDCOLUMNS(CALENDAR(DATE(2022,1,1), DATE(2023,12,31)), "Year", YEAR([Date]), "MonthNumber", MONTH([Date]), "MonthName", FORMAT([Date], "MMMM"))
D. DateTable = ADDCOLUMNS(CALENDAR(DATE(2022,1,1), DATE(2023,12,31)), Year, YEAR(Date), MonthNumber, MONTH(Date), MonthName, FORMAT(Date, "MMMM"))

Solution

  1. Step 1: Use CALENDAR to create date range

    CALENDAR(DATE(2022,1,1), DATE(2023,12,31)) creates the date table with all dates in range.
  2. Step 2: Add columns with ADDCOLUMNS and correct syntax

    ADDCOLUMNS adds new columns with names as strings and expressions using [Date] column. DateTable = ADDCOLUMNS(CALENDAR(DATE(2022,1,1), DATE(2023,12,31)), "Year", YEAR([Date]), "MonthNumber", MONTH([Date]), "MonthName", FORMAT([Date], "MMMM")) uses correct syntax with quotes and [Date].
  3. Step 3: Identify incorrect options

    DateTable = CALENDAR(DATE(2022,1,1), DATE(2023,12,31)) ADDCOLUMNS("Year", YEAR([Date]), "MonthNumber", MONTH([Date]), "MonthName", FORMAT([Date], "MMMM")) misses comma and chaining syntax. DateTable = CALENDAR(DATE(2022,1,1), DATE(2023,12,31)) + ADDCOLUMNS("Year", YEAR([Date]), "MonthNumber", MONTH([Date]), "MonthName", FORMAT([Date], "MMMM")) tries to add tables with + which is invalid. DateTable = ADDCOLUMNS(CALENDAR(DATE(2022,1,1), DATE(2023,12,31)), Year, YEAR(Date), MonthNumber, MONTH(Date), MonthName, FORMAT(Date, "MMMM")) misses quotes around column names and uses Date without brackets.
  4. Final Answer:

    DateTable = ADDCOLUMNS(CALENDAR(DATE(2022,1,1), DATE(2023,12,31)), "Year", YEAR([Date]), "MonthNumber", MONTH([Date]), "MonthName", FORMAT([Date], "MMMM")) -> Option C
  5. Quick Check:

    Correct ADDCOLUMNS syntax = DateTable = ADDCOLUMNS(CALENDAR(DATE(2022,1,1), DATE(2023,12,31)), "Year", YEAR([Date]), "MonthNumber", MONTH([Date]), "MonthName", FORMAT([Date], "MMMM")) [OK]
Hint: Use ADDCOLUMNS with quoted names and [Date] references [OK]
Common Mistakes:
  • Missing quotes around new column names
  • Using + to combine tables
  • Referencing columns without brackets
  • Incorrect chaining of functions
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