A sales manager opens a monthly performance dashboard and wants to select a quiet day to confirm that no orders arrived. Instead, the Power BI date slicer skips that date completely. It only lists dates where the sales table has rows.
I have seen this issue often in client reports built from Excel exports, SharePoint lists, and SQL sales tables. The report looks fine at first, but it creates a misleading experience: users cannot distinguish “no sales happened” from “this date does not exist in the report.”
This troubleshooting guide shows why a Power BI date slicer only shows dates with data, how to fix it with a proper Date table, and how to keep your sales dashboard accurate as new data arrives.
Why Power BI Date Slicer Only Shows Dates With Data
The issue usually starts with the field used in the Slicer visual. When you drag Sales[OrderDate] directly into a slicer, Power BI reads only the dates available in the Sales table.
For example, imagine a retail company has these orders:
| Order Date | Sales Amount |
|---|---|
| January 2, 2026 | 1,500 |
| January 4, 2026 | 2,100 |
| January 7, 2026 | 850 |
If you use Sales[OrderDate] in a slicer, Power BI only offers January 2, January 4, and January 7. It has no record for January 1, 3, 5, or 6, so it cannot display them.
That behavior makes technical sense, but it does not support most business reporting needs. A sales manager expects a calendar that includes every day in the reporting range. They may want to select a date with zero orders, review a holiday period, or compare a slow week against a busy one.
The reliable fix is to create a separate Date table. A Date table is a dedicated table that contains one row for every calendar date. It acts as the central time dimension in your Data model.
You should use this design in nearly every interactive report that needs date filtering, trends, month comparisons, or time-intelligence calculations. It also gives you a stronger base for Power BI DAX formulas and time-based reporting.
Fix Power BI Date Slicer Only Shows Dates With Data
The best solution is not a formatting change in the slicer. You need to adjust the report model so the slicer uses a complete calendar instead of a transaction table.
For this example, I will use a sales dashboard for a mid-sized retail company. The company stores sales records in an Excel file or SQL database and wants to track revenue by day, month, product category, and region.
Step 1: Check Your Sales Date Column
Open Power BI Desktop and select the sales table in the Data view. Confirm that the column holding the order date uses the Date data type.
If your source contains a date and time value, such as 01/07/2026 14:35:00, create a date-only column before building the relationship. Dates with hidden time values often cause unmatched records because 01/07/2026 14:35:00 does not exactly match 01/07/2026 00:00:00.
You can remove the time portion in Power Query:
- Select Home > Transform data.
- Select the sales date-time column.
- Choose Transform > Date > Date Only.
- Rename the new column to
Order Date. - Select Close & Apply.

If the source stores dates as numbers or text, fix the data type before you create a relationship. For example, an eight-digit value like 20260107 needs conversion before Power BI treats it as a usable date. This guide on converting YYYYMMDD to a date in Power BI can help when working with exported ERP or accounting data.
Step 2: Create a Complete Date Table in Power BI
Now create a dedicated Date table with every day your report needs. In Power BI Desktop, go to Modeling > New table and enter this DAX formula:
Date =
ADDCOLUMNS(
CALENDAR(DATE(2024, 1, 1), DATE(2027, 12, 31)),
"Year", YEAR([Date]),
"Month Number", MONTH([Date]),
"Month", FORMAT([Date], "MMMM"),
"Year Month", FORMAT([Date], "YYYY-MM"),
"Quarter", "Q" & FORMAT([Date], "Q"),
"Day", DAY([Date])
)

This formula uses the CALENDAR function to create one row for every date from January 1, 2024, through December 31, 2027. The ADDCOLUMNS function adds useful reporting columns, including year, month, quarter, and day.
The extra columns make your date table more useful across the dashboard:
- Year supports yearly filtering and KPI comparisons.
- Month Number keeps month names in calendar order.
- Month supports month-level slicers and charts.
- Year Month supports trends across multiple years.
- Quarter supports executive reporting.
- Day supports detailed day-level reporting.
A fixed date range works well when the company has stable historical reporting needs. For a report that refreshes every day, use a dynamic range instead:
Date =
ADDCOLUMNS(
CALENDAR(
DATE(YEAR(MIN(Sales[OrderDate])), 1, 1),
DATE(YEAR(MAX(Sales[OrderDate])), 12, 31)
),
"Year", YEAR([Date]),
"Month Number", MONTH([Date]),
"Month", FORMAT([Date], "MMMM"),
"Year Month", FORMAT([Date], "YYYY-MM"),
"Quarter", "Q" & FORMAT([Date], "Q")
)
This version finds the earliest and latest dates in the Sales table, then builds full calendar years around them. If the retail company adds new transactions after refresh, the Date table expands as the fact data expands.
For a deeper walkthrough of date-table DAX, review the Power BI CALENDAR function.
Pro Tip: In my experience, a Date table should cover slightly beyond the current data range. If the report includes targets, budgets, or planned promotions for future months, I add at least one future year. Otherwise, users cannot select dates where planned activity exists but sales have not started.
Step 3: Mark the Table as a Date Table
Creating the table is not enough. You must tell Power BI Desktop that this table is the official calendar for time calculations.
- In the Data pane, select the Date table.
- Open the Table tools tab.
- Select Mark as date table.
- Choose the Date column.
- Select OK.

This step matters when you use time intelligence in DAX measures. Time intelligence refers to calculations that compare time periods, such as last year, last month, or year-to-date sales.
For example, create a basic sales measure:
Total Sales =
SUM(Sales[Amount])
A Measure calculates a result based on the current filter context. In plain terms, it responds to what users select in slicers, charts, and tables.
Then create a previous-year measure:
Sales LY =
CALCULATE(
[Total Sales],
SAMEPERIODLASTYEAR('Date'[Date])
)
The CALCULATE function changes the filter context for a measure. The SAMEPERIODLASTYEAR function shifts the selected dates back one year. If a manager selects March 2026, this measure returns sales for March 2025.
These calculations work more reliably when your report uses a marked Date table. You can also learn more about filtering Power BI data by date with DAX.
Step 4: Create the Correct Relationship
Next, connect the Date table to the sales table.
- Select Model view in Power BI Desktop.
- Drag Date[Date] onto Sales[OrderDate].
- Confirm that the relationship shows One to many (1:).
- Set the cross-filter direction to Single.
- Confirm that the relationship is active.

The Date table should sit on the one side because it has one unique row for each date. The Sales table sits on the many side because several transactions can happen on the same day.
This is part of a star schema, a simple data-model design where lookup tables such as Date, Product, Customer, and Region filter a central transaction table. A star schema keeps filters predictable and makes reports easier to maintain.
Avoid connecting the Date table to several date fields through active relationships. A sales table may have OrderDate, ShipDate, and DeliveryDate, but only one relationship between the Date table and the Sales table can stay active at a time.
Keep OrderDate active for the main report. You can use USERELATIONSHIP in a measure when you need shipping or delivery analysis.
Sales by Ship Date =
CALCULATE(
[Total Sales],
USERELATIONSHIP('Date'[Date], Sales[ShipDate])
)
This measure temporarily activates the relationship between Date[Date] and Sales[ShipDate] while calculating sales.
Step 5: Replace the Old Slicer Field
Delete the existing slicer that uses Sales[OrderDate]. Then add a new Slicer visual and use the date from the Date table.
- Select a blank area on the report canvas.
- Select Slicer from the Visualizations pane.
- Drag Date[Date] into the slicer field well.
- Choose the desired slicer style from the slicer menu.
- Test a date with no sales records.

For daily reporting, I usually use the Between slicer style. It works well for a sales dashboard because managers can select an exact start and end date.
For monthly analysis, use Date[Year Month] or a hierarchy with Year and Month. If you want a compact selector, create a dropdown slicer in Power BI.
The key point is simple: use a column from the Date table in every date slicer. Do not use the transaction date directly from Sales, Orders, Invoices, or Tickets.
Step 6: Show Zero Instead of Blank Where Needed
After adding a full Date table, the slicer now displays every date. But a chart or card may still show blank values for dates without sales.
That is because SUM(Sales[Amount]) returns a blank result when no rows match the selected date. For many dashboards, showing zero gives users a clearer answer.
Create this measure:
Total Sales Zero =
COALESCE(
[Total Sales],
0
)
The COALESCE function returns the first non-blank value. If Total Sales is blank, it returns zero.
Use Total Sales Zero in a daily line chart, a clustered column chart, or a sales KPI card. It makes quiet dates visible and helps users understand whether the business recorded no sales or the report has a filter problem.
If your version of DAX does not support COALESCE, use this alternative:
Total Sales Zero =
IF(
ISBLANK([Total Sales]),
0,
[Total Sales]
)
You should not replace blanks with zero everywhere. A blank may carry meaning in a target, forecast, or incomplete-data scenario. For sales transactions, though, zero usually communicates the business result more clearly.
Build a Better Sales Dashboard With Dates
Once the Date table drives your filters, use it consistently across the interactive report.
For the retail sales dashboard, I would add these visuals:
- A Card for Total Sales Zero.
- A Card for Sales LY.
- A Line chart with
Date[Date]on the X-axis andTotal Sales Zeroas values. - A Clustered column chart showing
Date[Month]and total sales. - A Bar chart for sales by product category.
- A Slicer for
Date[Date]. - A Slicer for region or sales channel.

Sort the Month column correctly so January appears before February. Select Date[Month], choose Column tools > Sort by column, and select Date[Month Number]. Without this step, Power BI may sort month names alphabetically.
For a month-level selection experience, see how to create a Power BI date slicer by month. You can also use Power BI slicer multiple selection when business users need to compare separate months, regions, or sales teams.
Control Slicer Interactions
A date slicer normally filters every visual on the page. That is useful most of the time, but sometimes you need a visual to retain its full context.
For example, the retail sales dashboard might include a yearly sales trend chart. If a manager selects one week, that chart may become less useful because it only shows the selected week.
To control that behavior:
- Select the date slicer.
- Open the Format ribbon.
- Select Edit interactions.
- Choose the filter icon for visuals the slicer should filter.
- Choose the none icon for visuals that should ignore the slicer.
- Select Edit interactions again to finish.

This gives you more control over the story the report tells. It also prevents a detail-level filter from making summary visuals look incomplete.
If your report has multiple pages, configure Power BI sync slicers so users do not need to select the same date range repeatedly.
Things to Keep in Mind
- Use the Date table everywhere: Every date slicer, date axis, and time-based measure should use columns from your dedicated Date table, not fields from the Sales table.
- Keep dates unique: The
Date[Date]column must contain one row per day. Duplicate dates break the one-to-many relationship and can create confusing filter results. - Remove time values: A date-time field may fail to match a date-only calendar. Convert transaction dates to the Date type before creating the relationship.
- Avoid bidirectional filters: Use a single-direction relationship from Date to Sales unless you have a clear model requirement. Bidirectional filtering can produce ambiguous results and slower queries.
- Use measures for totals: Build calculations such as revenue, order count, and margin as Measures, not calculated columns. Measures respond to slicer choices and usually use less model storage.
- Test after refresh: Refresh the report and test future, quiet, and historical dates. This confirms that the Date table range includes all dates your users need.
Frequently Asked Questions
Why does my Power BI slicer not show all dates?
Your slicer likely uses a date field from a transaction table that only contains dates with rows. Create a separate Date table with every calendar day, relate it to the transaction table, and use the Date table in the slicer.
Can I show dates without data in a Power BI slicer?
Yes. A dedicated Date table includes dates even when the Sales table has no matching rows. Use Date[Date] in the Slicer visual instead of Sales[OrderDate].
Do I need a Date table for every Power BI report?
Most reports with date filtering, trends, monthly KPIs, or year-over-year comparisons benefit from one. A Date table gives you consistent filtering and supports reliable time-intelligence DAX calculations.
Why does my Date table relationship not work?
Check whether both columns use the Date data type and whether the transaction column contains time values. Also confirm that the relationship is active and uses one-to-many cardinality from Date to Sales.
How do I show zero sales for missing dates in Power BI?
Create a measure with COALESCE([Total Sales], 0). Use that measure in cards and charts where zero is the correct business meaning for an empty transaction day.
Can one Date table connect to Order Date and Ship Date?
Yes, but only one relationship can remain active at a time. Keep the primary date relationship active, then use USERELATIONSHIP inside DAX measures for secondary date fields such as Ship Date or Delivery Date.
A Date table fixes the root cause when a Power BI date slicer only shows dates with data, while also improving your DAX measures, visuals, and data model. Build the Date table first, create a clean one-to-many relationship, and always use its fields in your slicers and time-based visuals. I hope you found this article helpful.
You May Also Like
- Power BI date slicer
- Power BI DAX MIN Date
- filter between two dates in Power BI
- create a Power BI measure table
- set up Row-Level Security in Power BI

Hey! I’m Bijay Kumar, founder of SPGuides.com and a Microsoft Business Applications MVP (Power Automate, Power Apps). I launched this site in 2020 because I truly enjoy working with SharePoint, Power Platform, and SharePoint Framework (SPFx), and wanted to share that passion through step-by-step tutorials, guides, and training videos. My mission is to help you learn these technologies so you can utilize SharePoint, enhance productivity, and potentially build business solutions along the way.