Join us at FabCon Atlanta from March 16 - 20, 2026, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.
Register now!Calling all Data Engineers! Fabric Data Engineer (Exam DP-700) live sessions are back! Starting October 16th. Sign up.
Hello!
I've been building a pretty complex (at least to me) Power BI report for metrics for analysts within the call center where I work. We work on a 13 period fiscal year. And metrics are provided to team members on a per period basis. For MOST of the metrics, reports are run that provide base data once/twice per period that is then imported into Power BI (via excel) for calculations. There are several different pages in the report for the different aspects of the job.
Big thing is, It's working right now, but I have to use a calculated Period number column on each of the different tables within the report in order to use a period filter on that page. This does not allow me to filter data from different tables on the same page. What I'm HOPING is possible is to have a "universal" slicer one that I can use the same slicer on each page.
The raw data that is pulled from our applications does not indicate period number, so I'm using a power bi calculated column to compare the date, to the established date range, then return what period a line item is reported from.
The data tables are separated out so my fiscal time data/period numbers are in one table, each metric is in it's own table, and then the scores/ranges for each metric is in their own table as well.
It does need to be a slicer because some of the visuals for my metrics are filtered by period and others are by YTD. (Unless any of you geniuses have a better way of doing things. I am self taught via youtube and the forums so if you know of a better way please share it! 🙂 )
Below is the URL to some example files and edited pbx report. It's not going to look complete cause I deleted a few pages/visuals that weren't relavent to the question.
URL: https://drive.google.com/drive/folders/1r1M4xvYt9nYKoQjMZICnW5_N59kh4pBP?usp=sharing
Any questions/ideas are greatly appreciated! I've been googling and watching videos and I haven't found an answer. Didn't know if there was one.
Thanks so much for your time! 🙂
@amitchandak All of the code is working, but on one of the pages for my report I've got visuals with data from multiple tables, the calculated Period Number column is the only consistent between all of them (employee name is different fomats because of where the data is pulled from)
I basically need a visual that can changes the Page Filter settings via period. The slicer is the only avenue I'm aware of, and I haven't found anything else. I don't know if it's even possible. When I apply the Period Number calculated in my main dates table Fiscal Year and Period Data, it doesn't update the visuals from the other tables.
Each table has a Period Number Calculated column with a version of this code:
Thank you for looking at this!! I REALLY appreciate it.
@Douttful , I did not get this completely. I have created a date calendar in file
Date = filter( generate( CALENDAR(date(2021,01,31), max('Fiscal Year and Period Dates'[Period End Date])),'Fiscal Year and Period Dates') , [date] >= [Period Start Date] && [Date] <= [Period End Date])
//new columns for time intelligence
Period Rank = RANKX('Date',[Period Start Date],,ASC,Dense)
Year Rank = RANKX('Date',[Fiscal Year Start Date] ,,ASC,Dense)
Your first-period start date was wrong, so I created a calendar from the correct date.
This you should be able to join on a date.
for time intelligence you can try like
This Year = CALCULATE(sum('Table'[Qty]), FILTER(ALL('Date'),h'Date'[Year Rank]=max('Date'[Year Rank])))
Last Year = CALCULATE(sum('Table'[Qty]), FILTER(ALL('Date'),'Date'[Year Rank]=max('Date'[Year Rank])-1))
This Period = CALCULATE(sum('Table'[Qty]), FILTER(ALL(Period),Period[Period Rank]=max(Period[Period Rank])))
Last Period = CALCULATE(sum('Table'[Qty]), FILTER(ALL(Period),Period[Period Rank]=max(Period[Period Rank])-1))
File attached after signature. Need example for what is not working