Forum Discussion
Sum value between start date and end date
- 8 years ago
Hi EVBI,
Please refer to below steps:
1. I am not sure which column is the unique column in source table, so I first added an Index column in Query Editor mode.
2. Create a calendar table.
Dim date Tb = CALENDAR(DATE(2018,1,1),DATE(2018,12,31))
Days per month = CALCULATE ( DAY ( MAX ( 'Dim date Tb'[Date] ) ), ALLEXCEPT ( 'Dim date Tb', 'Dim date Tb'[Date].[Year], 'Dim date Tb'[Date].[Month] ) )3. Cross Join calendar table and fact data table, and add below calculated columns.
Cross Join Tb = ADDCOLUMNS ( FILTER ( CROSSJOIN ( 'Dim date Tb', data ), 'Dim date Tb'[Date] >= [start date] && 'Dim date Tb'[Date] <= [end date] ), "Year", YEAR ( [Date] ), "Month", MONTH ( [Date] ) ) Count days = CALCULATE ( COUNT ( [Date] ), ALLEXCEPT ( 'Cross Join Tb', 'Cross Join Tb'[Year], 'Cross Join Tb'[Month], 'Cross Join Tb'[Index] ) ) Actual Rev = 'Cross Join Tb'[Count days] / 'Cross Join Tb'[Days per month] * 'Cross Join Tb'[Net Rev(USD)]4. Summarize above table.
Summarize Tb = SUMMARIZE ( 'Cross Join Tb', 'Cross Join Tb'[Year], 'Cross Join Tb'[Month], 'Cross Join Tb'[Index], "Net Rev", AVERAGE ( 'Cross Join Tb'[Actual Rev] ) )5. Below calculated table is the final output.
Summarize Tb2 = SUMMARIZE ( 'Summarize Tb', 'Summarize Tb'[Year], 'Summarize Tb'[Month], "Sum Rev per month", SUM ( 'Summarize Tb'[Net Rev] ) )Best regards,
Yuliana Gu
Hi EVBI,
Please refer to below steps:
1. I am not sure which column is the unique column in source table, so I first added an Index column in Query Editor mode.
2. Create a calendar table.
Dim date Tb = CALENDAR(DATE(2018,1,1),DATE(2018,12,31))
Days per month = CALCULATE ( DAY ( MAX ( 'Dim date Tb'[Date] ) ), ALLEXCEPT ( 'Dim date Tb', 'Dim date Tb'[Date].[Year], 'Dim date Tb'[Date].[Month] ) )
3. Cross Join calendar table and fact data table, and add below calculated columns.
Cross Join Tb =
ADDCOLUMNS (
FILTER (
CROSSJOIN ( 'Dim date Tb', data ),
'Dim date Tb'[Date] >= [start date]
&& 'Dim date Tb'[Date] <= [end date]
),
"Year", YEAR ( [Date] ),
"Month", MONTH ( [Date] )
)
Count days =
CALCULATE (
COUNT ( [Date] ),
ALLEXCEPT (
'Cross Join Tb',
'Cross Join Tb'[Year],
'Cross Join Tb'[Month],
'Cross Join Tb'[Index]
)
)
Actual Rev =
'Cross Join Tb'[Count days] / 'Cross Join Tb'[Days per month]
* 'Cross Join Tb'[Net Rev(USD)]
4. Summarize above table.
Summarize Tb =
SUMMARIZE (
'Cross Join Tb',
'Cross Join Tb'[Year],
'Cross Join Tb'[Month],
'Cross Join Tb'[Index],
"Net Rev", AVERAGE ( 'Cross Join Tb'[Actual Rev] )
)
5. Below calculated table is the final output.
Summarize Tb2 =
SUMMARIZE (
'Summarize Tb',
'Summarize Tb'[Year],
'Summarize Tb'[Month],
"Sum Rev per month", SUM ( 'Summarize Tb'[Net Rev] )
)
Best regards,
Yuliana Gu
Thank you so much v-yulgu-msft!