Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
3 years ago
Solved

Power BI - Month Dimension

Hello All,   We have a requirement to create a Month Dimension similar to date dimension which should have only start of month date instead of all the dates of month. How to create such Month dimes...
  • eliasayyy's avatar
    eliasayyy
    3 years ago

    pelase try Anonymous 

     

     

    let
        CurrentYear = Date.Year(DateTime.LocalNow()),
        EndDate = #date(CurrentYear,12,31),
        StartDate = #date(CurrentYear,1,1),
        NumberOfMonths = (Date.Year(EndDate) - CurrentYear + 1) * 12,
        MonthStarts = List.Transform({0..(NumberOfMonths-1)}, each Date.StartOfMonth(Date.AddMonths(StartDate, _))),
        
        // Convert the list to a table
        TableFromList = Table.FromList(MonthStarts, Splitter.SplitByNothing()),
        RenameDateColumn = Table.RenameColumns(TableFromList,{{"Column1", "Date"}}),
    
        // Add Year, Month Number and Month-Year columns
        Addedyear = Table.AddColumn(RenameDateColumn, "Year", each Date.Year([Date])),
        AddMonthNumber = Table.AddColumn(Addedyear, "Month Number", each Date.Month([Date])),
        AddMonthYear = Table.AddColumn(AddMonthNumber, "Month-Year", each Date.ToText([Date], "MMM-yy")),
    
        // Change the types of all columns
        ChangeTypes = Table.TransformColumnTypes(
            AddMonthYear, 
            {
                {"Date", type date},
                {"Year", Int64.Type},
                {"Month Number", Int64.Type},
                {"Month-Year", type text}
            }
        )
    in
        ChangeTypes