Power BI is turning 10, and we’re marking the occasion with a special community challenge. Use your creativity to tell a story, uncover trends, or highlight something unexpected.
Get startedJoin us for an expert-led overview of the tools and concepts you'll need to become a Certified Power BI Data Analyst and pass exam PL-300. Register now.
How can we achieve the following requirements in Power BI?
We have user data along with their information, and all the Power BI visualizations are built using this data.
In the user table, there is a column named User_Joined_Date, which is in the format:
YYYY-MM-DD HH:MM:SS +00 UTC
This column is currently in the UTC time zone, and the entire dashboard is based on this timestamp.
Now, we want to implement a slicer or dropdown that allows the user to select multiple time zones like:
PST (+5)
EST (-4)
BST (+1)
GST (+4), etc.
Whenever a timezone is selected, the data should dynamically convert the User_Joined_Date from UTC to the selected timezone. All visuals should reflect the converted time accordingly.
We’ve also added a third-party date picker which is connected as follows:
Date Picker’s Date column → related to → User table’s User_Joined_Date column.
The key point is that we are also splitting the User_Joined_Date column in Power Query into two separate columns:
User_Joined_Date (date only) and User_Joined_Time (time only),
in order to establish the correct relationship with the date picker.
Solved! Go to Solution.
Thanks @Musab-Ali for the follow-up, I completely understand your scenario now. Since your dashboard depends on the User_Joined_Date field and you need full interaction with a third-party date picker and slicers, the best way to support dynamic time zone switching (without breaking model relationships) is to handle the timezone transformation at the data level instead of relying on dynamic measures.
This approach avoids the limitations of dynamic measures, ensures that your date picker continues to work properly, and lets users switch timezones across the entire dashboard without needing to duplicate visuals or reports.
If the response has addressed your query, please Accept it as a solution and give a 'Kudos' so other members can easily find it.Best Regards,
Tejaswi.
Community Support
Thank you, Tejaswi, for the detailed and well-explained solution.
The use of TREATAS() and timezone offsets in the measure is a smart approach and works well in many scenarios.
That said, I’m still facing a few limitations when trying to implement this in our case:
Relationship Limitations with Date Picker:
We are using a third-party date picker that interacts with our User_Joined_Date through a model relationship. Since the LocalDate in your solution is created inside a measure, it cannot be part of a relationship. This means the date picker can't properly filter or interact with the calculated date, which is critical in our report setup.
Measure and Column Scope Issues:
Measures can't be used in relationships or slicers, which breaks the link between the Date table and the user data when working with local time.
Similarly, using calculated columns with fixed offsets won’t solve the issue either — because once calculated, those columns are static and can’t be reverted or dynamically changed when a user switches timezones.
Dashboard-Wide Timezone Switching Requirement:
Our entire dashboard is built using User_Joined_Date in UTC. What we're trying to achieve is:
When a user views the report in UTC and selects PST from a slicer, the full dashboard should update to reflect PST time.
Then, if the user switches back to UTC (or any other timezone) from the same slicer, the dashboard should convert back accordingly.
This dynamic switching is key we don’t want to build or duplicate visuals or reports per timezone.
So far, I haven’t been able to get the measure-based approach to support this level of interactivity and model integration.
Do you have any suggestions on how we can achieve fully dynamic timezone switching (with slicer support) while keeping relationships and the date picker functionality intact?
Really appreciate any ideas or further direction on this.
Thanks @Musab-Ali for the follow-up, I completely understand your scenario now. Since your dashboard depends on the User_Joined_Date field and you need full interaction with a third-party date picker and slicers, the best way to support dynamic time zone switching (without breaking model relationships) is to handle the timezone transformation at the data level instead of relying on dynamic measures.
This approach avoids the limitations of dynamic measures, ensures that your date picker continues to work properly, and lets users switch timezones across the entire dashboard without needing to duplicate visuals or reports.
If the response has addressed your query, please Accept it as a solution and give a 'Kudos' so other members can easily find it.Best Regards,
Tejaswi.
Community Support
Hello Tejaswi,
Thanks a lot for your help!!!
I tested on a mini dataset, and it works as per the requirement
Just wanted to check on Live
Once again, thank you so much for your help
Best Regards,
Musab Ali
Hi @Musab-Ali,
Thanks for reaching out to the Microsoft fabric community forum.
To display the user count by local join date based on the selected time zone in Power BI, here’s the approach that works perfectly:
First, create a Date table using the CALENDAR() function and mark it as a Date table. Then, create a TimeZones table with two columns: TimeZoneName (e.g., PST, EST, IST) and OffsetHours (the UTC offset for each time zone).
Next, add a slicer to the report using the TimeZones[TimeZoneName] field, so users can select the desired time zone dynamically.
To calculate the user count adjusted to the selected time zone, use this DAX measure:
User Count by LocalDate =
VAR Offset = SELECTEDVALUE(TimeZones[OffsetHours], 0)
RETURN
CALCULATE(
COUNTROWS(Users),
ADDCOLUMNS(
Users,
"LocalDate", DATEVALUE(Users[User_Joined_DateTime_UTC] + Offset / 24)
),
TREATAS(VALUES('Date'[Date]), [LocalDate])
)
Finally, use Date[Date] (or Day, Month, etc.) from your Date table in your visuals, along with this measure. The result will show the user count by local join date, dynamically adjusting based on the selected time zone from the slicer. Simple, effective, and works great with multiple time zones.
Please find the attached pbix file for your reference.
If the response has addressed your query, please Accept it as a solution and give a 'Kudos' so other members can easily find it.
Best Regards,
Tejaswi.
Community Support
One option would be to create a column for each the date in each timezone you want to cater for.
Before you split the datetime into separate columns you could add a new column using the DateTimeZone.SwitchZone function and then keeping just the date part.
Create inactive relationships from the Date table to each timezone date column and then create a calculation group, with calculation items for each timezone. Each item would have the same format but use the appropriate relationship for that timezone, e.g.
PST =
CALCULATE (
SELECTEDMEASURE (),
USERELATIONSHIP ( 'Date'[Date], Users[PST Date] )
)
By putting the calculation items into the slicer the user will be able to select which one they want to see.
You would probably want to hide all the date columns in report view, and always use columns from the Date table in any visuals so that the correct date is displayed.
This is your chance to engage directly with the engineering team behind Fabric and Power BI. Share your experiences and shape the future.
Check out the June 2025 Power BI update to learn about new features.
User | Count |
---|---|
78 | |
78 | |
58 | |
35 | |
32 |
User | Count |
---|---|
99 | |
59 | |
56 | |
46 | |
40 |