Forum Discussion

Jess_Scragg's avatar
Jess_Scragg
Frequent Visitor
4 years ago
Solved

Date table showing blank

Hi. I am trying to create a date table for my PBI report so I can do some time intelligence analysis (looking at data over the last couple of years). I have created this date key in Excel:

I have added this as a data source to my PBI file. This is showing in the PBI Power Query:

The only thing I have done to the date table in PBI is promote the headers:

However, when I then open the table in Data View, it shows as blank:

I can't work out why PBI isn't recognising that there is data in here. Help please?

 

  • PC2790's avatar
    PC2790
    4 years ago

    Shouldn't be a problem in the front end. I suggest createing a date table in Power BI itself rather than importing it from excel.

    You can do it in power query or dax.

    Power Query code that I personally use as given below:

    let fnDateTable = (StartDate as date, EndDate as date, FYStartMonth as number) as table =>
      let
        DayCount = Duration.Days(Duration.From(EndDate - StartDate)),
        Source = List.Dates(StartDate,DayCount,#duration(1,0,0,0)),
        TableFromList = Table.FromList(Source, Splitter.SplitByNothing()),   
        ChangedType = Table.TransformColumnTypes(TableFromList,{{"Column1", type date}}),
        RenamedColumns = Table.RenameColumns(ChangedType,{{"Column1", "Date"}}),
        InsertYear = Table.AddColumn(RenamedColumns, "Year", each Date.Year([Date]),type text),
        InsertYearNumber = Table.AddColumn(RenamedColumns, "YearNumber", each Date.Year([Date])),
        InsertQuarter = Table.AddColumn(InsertYear, "QuarterOfYear", each Date.QuarterOfYear([Date])),
        InsertMonth = Table.AddColumn(InsertQuarter, "MonthOfYear", each Date.Month([Date]), type text),
        InsertDay = Table.AddColumn(InsertMonth, "DayOfMonth", each Date.Day([Date])),
        InsertDayInt = Table.AddColumn(InsertDay, "DateInt", each [Year] * 10000 + [MonthOfYear] * 100 + [DayOfMonth]),
        InsertMonthName = Table.AddColumn(InsertDayInt, "MonthName", each Date.ToText([Date], "MMMM"), type text),
        InsertCalendarMonth = Table.AddColumn(InsertMonthName, "MonthInCalendar", each (try(Text.Range([MonthName],0,3)) otherwise [MonthName]) & " " & Number.ToText([Year])),
        InsertCalendarQtr = Table.AddColumn(InsertCalendarMonth, "QuarterInCalendar", each "Q" & Number.ToText([QuarterOfYear]) & " " & Number.ToText([Year])),
        InsertDayWeek = Table.AddColumn(InsertCalendarQtr, "DayInWeek", each Date.DayOfWeek([Date])),
        InsertDayName = Table.AddColumn(InsertDayWeek, "DayOfWeekName", each Date.ToText([Date], "dddd"), type text),
        InsertWeekEnding = Table.AddColumn(InsertDayName, "WeekEnding", each Date.EndOfWeek([Date]), type date),
        InsertWeekNumber= Table.AddColumn(InsertWeekEnding, "Week Number", each Date.WeekOfYear([Date])),
        InsertMonthnYear = Table.AddColumn(InsertWeekNumber,"MonthnYear", each [Year] * 10000 + [MonthOfYear] * 100),
        InsertQuarternYear = Table.AddColumn(InsertMonthnYear,"QuarternYear", each [Year] * 10000 + [QuarterOfYear] * 100),
        ChangedType1 = Table.TransformColumnTypes(InsertQuarternYear,{{"QuarternYear", Int64.Type},{"Week Number", Int64.Type},{"Year", type text},{"MonthnYear", Int64.Type}, {"DateInt", Int64.Type}, {"DayOfMonth", Int64.Type}, {"MonthOfYear", Int64.Type}, {"QuarterOfYear", Int64.Type}, {"MonthInCalendar", type text}, {"QuarterInCalendar", type text}, {"DayInWeek", Int64.Type}}),
        InsertShortYear = Table.AddColumn(ChangedType1, "ShortYear", each Text.End(Text.From([Year]), 2), type text),
        AddFY = Table.AddColumn(InsertShortYear, "FY", each "FY"&(if [MonthOfYear]>=FYStartMonth then Text.From(Number.From([ShortYear])+1) else [ShortYear]))
    in
        AddFY
    in
        fnDateTable

    For creating date table in DAx, refer- Creating Calendar Table in Power BI using DAX Functions - RADACAD

3 Replies

  • PC2790's avatar
    PC2790
    Icon for Community Champion rankCommunity Champion

    Hello Jess_Scragg ,

     

    I have seen this scenario before as well where doesn't show but data is there which you can see from the bottom saying - 1005 rows, 13 distinct values.

    So it will not hamper your outcome anywhere.

     

    For why the data is not visible,see if you can find anything related in the issue forum:

    https://community.powerbi.com/t5/Issues/idb-p/Issues

    And if it is not there, go ahead and post it.

    If you have Pro account you could try to open a support ticket. If you have a Pro account it is free. Go to https://support.powerbi.com

    Scroll down and click "CREATE SUPPORT TICKET".

    • Jess_Scragg's avatar
      Jess_Scragg
      Frequent Visitor

      Thanks for your response. So because it is recognising that data is there, just isn't displaying it, this shouldn't be a problem? It just seems so weird, this happens whenever I make date tables and I can't find the cause of it. It doesn't seem to be anything in the list you have linked

      • PC2790's avatar
        PC2790
        Icon for Community Champion rankCommunity Champion

        Shouldn't be a problem in the front end. I suggest createing a date table in Power BI itself rather than importing it from excel.

        You can do it in power query or dax.

        Power Query code that I personally use as given below:

        let fnDateTable = (StartDate as date, EndDate as date, FYStartMonth as number) as table =>
          let
            DayCount = Duration.Days(Duration.From(EndDate - StartDate)),
            Source = List.Dates(StartDate,DayCount,#duration(1,0,0,0)),
            TableFromList = Table.FromList(Source, Splitter.SplitByNothing()),   
            ChangedType = Table.TransformColumnTypes(TableFromList,{{"Column1", type date}}),
            RenamedColumns = Table.RenameColumns(ChangedType,{{"Column1", "Date"}}),
            InsertYear = Table.AddColumn(RenamedColumns, "Year", each Date.Year([Date]),type text),
            InsertYearNumber = Table.AddColumn(RenamedColumns, "YearNumber", each Date.Year([Date])),
            InsertQuarter = Table.AddColumn(InsertYear, "QuarterOfYear", each Date.QuarterOfYear([Date])),
            InsertMonth = Table.AddColumn(InsertQuarter, "MonthOfYear", each Date.Month([Date]), type text),
            InsertDay = Table.AddColumn(InsertMonth, "DayOfMonth", each Date.Day([Date])),
            InsertDayInt = Table.AddColumn(InsertDay, "DateInt", each [Year] * 10000 + [MonthOfYear] * 100 + [DayOfMonth]),
            InsertMonthName = Table.AddColumn(InsertDayInt, "MonthName", each Date.ToText([Date], "MMMM"), type text),
            InsertCalendarMonth = Table.AddColumn(InsertMonthName, "MonthInCalendar", each (try(Text.Range([MonthName],0,3)) otherwise [MonthName]) & " " & Number.ToText([Year])),
            InsertCalendarQtr = Table.AddColumn(InsertCalendarMonth, "QuarterInCalendar", each "Q" & Number.ToText([QuarterOfYear]) & " " & Number.ToText([Year])),
            InsertDayWeek = Table.AddColumn(InsertCalendarQtr, "DayInWeek", each Date.DayOfWeek([Date])),
            InsertDayName = Table.AddColumn(InsertDayWeek, "DayOfWeekName", each Date.ToText([Date], "dddd"), type text),
            InsertWeekEnding = Table.AddColumn(InsertDayName, "WeekEnding", each Date.EndOfWeek([Date]), type date),
            InsertWeekNumber= Table.AddColumn(InsertWeekEnding, "Week Number", each Date.WeekOfYear([Date])),
            InsertMonthnYear = Table.AddColumn(InsertWeekNumber,"MonthnYear", each [Year] * 10000 + [MonthOfYear] * 100),
            InsertQuarternYear = Table.AddColumn(InsertMonthnYear,"QuarternYear", each [Year] * 10000 + [QuarterOfYear] * 100),
            ChangedType1 = Table.TransformColumnTypes(InsertQuarternYear,{{"QuarternYear", Int64.Type},{"Week Number", Int64.Type},{"Year", type text},{"MonthnYear", Int64.Type}, {"DateInt", Int64.Type}, {"DayOfMonth", Int64.Type}, {"MonthOfYear", Int64.Type}, {"QuarterOfYear", Int64.Type}, {"MonthInCalendar", type text}, {"QuarterInCalendar", type text}, {"DayInWeek", Int64.Type}}),
            InsertShortYear = Table.AddColumn(ChangedType1, "ShortYear", each Text.End(Text.From([Year]), 2), type text),
            AddFY = Table.AddColumn(InsertShortYear, "FY", each "FY"&(if [MonthOfYear]>=FYStartMonth then Text.From(Number.From([ShortYear])+1) else [ShortYear]))
        in
            AddFY
        in
            fnDateTable

        For creating date table in DAx, refer- Creating Calendar Table in Power BI using DAX Functions - RADACAD