cancel
Showing results for 
Search instead for 
Did you mean: 

Fabric is Generally Available. Browse Fabric Presentations. Work towards your Fabric certification with the Cloud Skills Challenge.

Reply
Anonymous
Not applicable

Limited calendar with an IF statement

I have a dashboard that is navigable through a movable slicer set on Between that has a calendar in it. The formula I've set for it is:

 

Calendar = CALENDAR(DATE(2021,1,10),DATE(YEAR(TODAY()),MONTH(TODAY()),DAY(TODAY())))

 

 

Which is simple, my first data point happened in 2021/1/10, and the data source is updated daily with new info, hence why I put TODAY() functions in the end. This worked out perfectly for last year, but now that it's 2023 we changed our data source, and to avoid confusion while we still use that other dashboard as well as future-proof the new one, I wanted to base the calendar off an IF() function.

 

Calendar = IF(DATE(YEAR(TODAY()),MONTH(TODAY()),DAY(TODAY())) >= DATE(2022,12,31),
                CALENDAR(DATE(2021,1,10),DATE(2022,12,31)),
                CALENDAR(DATE(2021,1,10),DATE(YEAR(TODAY()),MONTH(TODAY()),DAY(TODAY())))
            )

 

 

This, however, broke my queries and returned the error: "The expression specified in the query is not a valid table expression". How would I be going on doing this correctly?

1 ACCEPTED SOLUTION

hi @Anonymous 

it seems the up limit of the calendar table shall be aligned with data record. 

try like:

Calendar = CALENDAR( DATE(2022, 1, 10), MAX(RecordTable[Date]))

try like:

View solution in original post

7 REPLIES 7
danextian
Super User
Super User

hi , 

I don't get why you're using DATE ( YEAR ( TODAY () ), MONTH ( TODAY () ), DAY ( TODAY () ) ) instead of simply TODAY ().

@Anonymous






Did I answer your question? Mark my post as a solution!

Proud to be a Super User!




"Tell me and I’ll forget; show me and I may remember; involve me and I’ll understand."
Connect to me on LinkedIn || Need consulting? Hire me for a Power BI gig on UpWork.
Learn with me on YouTube @PowerBITambayan.
Anonymous
Not applicable

Because I didn't know you could do that when I started this dashboard and left it as-is.

Padycosmos
Solution Sage
Solution Sage

Hope this helps

Padycosmos_6-1674607733855.png

 

FreemanZ
Super User
Super User

hi @Anonymous 

how about

Calendar = CALENDAR( DATE(2022, 1, 10), TODAY())

directly?

Anonymous
Not applicable

I mean, yes, I could do that. In fact it's what I'm using right now on my dashboard.

image_2023-01-25_004641890.png

 

 

What I want to do is to make it so when 2024 arrives, I don't have to make a patch that my boss has to download so they don't get confused about why 2024 is selectable when there's no data available. Today there was a bit of confusion surrounding 2023 in the 2022 dashboard, which is why I thought of using the IF() statement. If it's not possible, it's fine, I just want to be able to avoid that future change if I can.

hi @Anonymous 

it seems the up limit of the calendar table shall be aligned with data record. 

try like:

Calendar = CALENDAR( DATE(2022, 1, 10), MAX(RecordTable[Date]))

try like:

Anonymous
Not applicable

Nice trick! I didn't know you could do that. Thanks for the help!

Helpful resources

Announcements
PBI November 2023 Update Carousel

Power BI Monthly Update - November 2023

Check out the November 2023 Power BI update to learn about new features.

Community News

Fabric Community News unified experience

Read the latest Fabric Community announcements, including updates on Power BI, Synapse, Data Factory and Data Activator.

Power BI Fabric Summit Carousel

The largest Power BI and Fabric virtual conference

130+ sessions, 130+ speakers, Product managers, MVPs, and experts. All about Power BI and Fabric. Attend online or watch the recordings.

Top Solution Authors
Top Kudoed Authors