Forum Discussion

j_w's avatar
j_w
Icon for Helper IV rankHelper IV
9 years ago
Solved

How to generate daily level data from monthly level data?

There is a Budget table:

Year    MonthNo    User        MonthlyBudget    BusinessDaysInMonth

2017   1                   David       2200.00                   22

2017   2                   David       2000.00                   20

... ...

2017   12                 David       2100.00                   21

2017   1                   James      2200.00                   22

2017   2                   James      2000.00                   20

... ...

2017   12                 James      2100.00                   21

 

How to generate another daily budget table in Power BI as following:

Date               User       DailyBudget    Day

2017-01-01     David     0                        Sunday

2017-01-02     David     100                    Monday

2017-01-03     David     100                    Tuesday

... ...

2017-12-28     David     100                    Thursday

2017-12-29     David     100                    Friday

2017-12-30     David      0                        Saturday

2017-12-31     David      0                        Sunday

2017-01-01     James     0                        Sunday

2017-01-02     James     100                    Monday

2017-01-03     James     100                    Tuesday

... ...

2017-12-28     James    100                    Thursday

2017-12-29     James    100                    Friday

2017-12-30     James    0                        Saturday

2017-12-31     James    0                        Sunday

 

Thanks.

  • Hi j_w,

     

    First, we need a date table.

    Date =
    ADDCOLUMNS (
        CALENDAR ( DATE ( 2017, 1, 1 ), DATE ( 2017, 12, 31 ) ),
        "MonthNum", MONTH ( [Date] )
    )

    Second, we add a column "DailyBudget" in the table "Budget".

    DailyBudget =
    'Budget'[ MonthlyBudget] / 'Budget'[ BusinessDaysInMonth]

    Third, we would get the result with this formula.

     

    Result =
    SELECTCOLUMNS (
        FILTER (
            CROSSJOIN ( 'Date', 'Budget' ),
            'Budget'[ MonthNo] = 'Date'[MonthNum]
                && YEAR ( 'Date'[Date] ) = 'Budget'[Year]
        ),
        "Date", [Date],
        "User", [User],
        "Day", FORMAT ( [Date], "dddd" ),
        "DailyBudget", IF ( WEEKDAY ( [Date], 2 ) IN { 6, 7 }, 0, [DailyBudget] )
    )

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    Best Regards!

    Dale

2 Replies

  • v-jiascu-msft's avatar
    v-jiascu-msft
    Icon for Microsoft Employee rankMicrosoft Employee

    Hi j_w,

     

    First, we need a date table.

    Date =
    ADDCOLUMNS (
        CALENDAR ( DATE ( 2017, 1, 1 ), DATE ( 2017, 12, 31 ) ),
        "MonthNum", MONTH ( [Date] )
    )

    Second, we add a column "DailyBudget" in the table "Budget".

    DailyBudget =
    'Budget'[ MonthlyBudget] / 'Budget'[ BusinessDaysInMonth]

    Third, we would get the result with this formula.

     

    Result =
    SELECTCOLUMNS (
        FILTER (
            CROSSJOIN ( 'Date', 'Budget' ),
            'Budget'[ MonthNo] = 'Date'[MonthNum]
                && YEAR ( 'Date'[Date] ) = 'Budget'[Year]
        ),
        "Date", [Date],
        "User", [User],
        "Day", FORMAT ( [Date], "dddd" ),
        "DailyBudget", IF ( WEEKDAY ( [Date], 2 ) IN { 6, 7 }, 0, [DailyBudget] )
    )

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    Best Regards!

    Dale