Check your eligibility for this 50% exam voucher offer and join us for free live learning sessions to get prepared for Exam DP-700.
Get StartedJoin us at the 2025 Microsoft Fabric Community Conference. March 31 - April 2, Las Vegas, Nevada. Use code FABINSIDER for $400 discount. Register now
My organization uses what we call the Faculty / Staff Calendar for payroll. You can find them @ https://www.csuchico.edu/hr/calendars.shtml. Anyone notice anything odd?
The August period is defined as August 1st - August 30th and August 31st is actually in the September period. I have been told the purpose of this is have the same number of working days in each period. I don't believe them.
The fundamentals are discussed in Chris Webb's BI Blog @ https://blog.crossjoin.co.uk/2016/06/03/creating-tables-in-power-bipower-query-m-code-using-table/.
This is where we are explicitly defining our Start of the Period and the End of the Period. Yes, unfortunately this is a manual process.
#table(
type table
[
#"PeriodStart" = date,
#"PeriodEnd" = date
],
{
// Faculty/Staff Calendar 2018-2019
{ #date ( 2018, 07, 01 ), #date ( 2018, 07, 31 ) },
{ #date ( 2018, 08, 01 ), #date ( 2018, 08, 30 ) },
{ #date ( 2018, 08, 31 ), #date ( 2018, 09, 30 ) },
{ #date ( 2018, 10, 01 ), #date ( 2018, 10, 30 ) },
{ #date ( 2018, 10, 31 ), #date ( 2018, 11, 29 ) },
{ #date ( 2018, 11, 30 ), #date ( 2018, 12, 31 ) },
{ #date ( 2019, 01, 01 ), #date ( 2019, 01, 30 ) },
{ #date ( 2019, 01, 31 ), #date ( 2019, 02, 28 ) },
{ #date ( 2019, 03, 01 ), #date ( 2019, 03, 31 ) },
{ #date ( 2019, 04, 01 ), #date ( 2019, 04, 30 ) },
{ #date ( 2019, 05, 01 ), #date ( 2019, 05, 30 ) },
{ #date ( 2019, 05, 31 ), #date ( 2019, 06, 30 ) }
}
)
Add Column > Index Column > From 1.
Add Column > Custom Column
List.Transform( { Number.From ( [PeriodStart] ) ..Number.From ( [PeriodEnd] ) }, each Date.From (_) )
Expand to New Rows
As you can see, now we have a list of all the calendar dates like a typical 'Calendar' table would have. The difference is we also have an Index number as well. Take a look at Rows 61 & 62.
To really see how we leverage the Index values I'll need to add additional custom periods. Since I already have the Faculty / Staff Calendar for 2017-2018, I'll just add that too Advanced Editor.
We now have 24 unique custom periods; {1, 2, 3, ... ,22, 23, 24} over 730 rows.
The solution to this actually eluded me for a long time. My friend and co-worker, provided the answer to this.
Why don't you use the MOD function? - Elbert Chan
You can read about MOD ( ) @ https://docs.microsoft.com/en-us/powerquery-m/number-mod.
Add Column > Custom Column
if Number.Mod([Index], 12) = 0 then 12 else Number.Mod([Index], 12)
Now we have period numbers {1, 2, ... , 11, 12}.
You can see how this works at the change to the new fiscal year.
In Excel, you can get the Month Name by using TEXT(MONTH([Serial Number]). We can not really do something like this here. Remember some dates are allocated to a different month/period. I'll use the example from above to demonstrate this.
Input of 8/31/2018
TEXT(MONTH(8/31/2018),"mmm")
Returns 'Aug'
The correct Period Name should be 'Sep' since 8/31/2018 belongs to that period in our custom calendar.
The fundamentals were originally found @ https://www.powerquery.training/portfolio/replicate-power-pivots-switch-function/
(input) =>
let
values = {
{1, "Jul"},
{2, "Aug"},
{3, "Sep"},
{4, "Oct"},
{5, "Nov"},
{6, "Dec"},
{7, "Jan"},
{8, "Feb"},
{9, "Mar"},
{10, "Apr"},
{11, "May"},
{12, "Jun"},
{input, "Undefined"}
},
Result = List.First(List.Select(values, each _{0}=input)){1}
in
Result
Add Column > Custom Column
The campus reporting system report that I use shows the Period as '##-mmm'.
Add Column > Custom Column
Text.Combine({Text.PadStart(Number.ToText([PeriodNum]), 2, "0"),[PeriodName]}, "-")
Our fiscal year name for the periods July 2018 through June 2019 is 2018.
Add Column > Custom Column
if [PeriodNum] >= 7 then Date.Year([Date]) - 1 else Date.Year([Date])
After formatting and ensuring data types, like [Date] is actually of type Date, I present the final Matrix visualization in Power BI
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.