Forum Discussion
Calculating Month-To-Date and Week-to-Date
- 10 years ago
Hi Rsanjuan,
I think the formula for month and week won’t work here, and as you concerned, the formula can’t identify which year the month belongs to, also for the week.
For the Previous sales, the formula posted might not be the correct one, see the testing results, the formula used are all copied from the posted ones:
Which I think should be the correct one is the following:
SalesYTD =
TOTALYTD (
[TotalSales],
'Date'[Date]
)
And:
SalesLastYear =
CALCULATE([TotalSales], DATEADD(DATESYTD('Date'[Date]),-1,Year))
Those two formula need a date table to work with.
For month total and Week total, see:
"
Iso MTD :=
IF (
HASONEVALUE ( Dates[ISO Year] )
&& HASONEVALUE (Dates[ISO Month Number] ),
CALCULATE (
SUM ( Sales[Sales Amount] ),
FILTER (
ALL ( Dates ),
Dates[ISO Year] = VALUES ( Dates[ISO Year] )
&& Dates[ISO Month Number] = VALUES ( Dates[ISO Month Number] )
&& Dates[Date] <= MAX ( Dates[Date] )
)
),
BLANK ()
)
Iso WTD :=
IF (
HASONEVALUE ( Dates[ISO Year] )
&& HASONEVALUE (Dates[ISO Week Number] ),
CALCULATE (
SUM ( Sales[Sales Amount] ),
FILTER (
ALL ( Dates ),
Dates[ISO Year] = VALUES ( Dates[ISO Year] )
&& Dates[ISO Week Number] = VALUES ( Dates[ISO Week Number] )
&& Dates[Date] <= MAX ( Dates[Date] )
)
),
BLANK ()
)
"
Check details in the the article below:
Week-Based Time Intelligence in DAX
Before using the formula posted in the article, we need to create a date table containing the following columns:
Year, month and week number in a year.
New table function to create a datetable;
Datatable = calendar(MinDate, MaxDate);
Then add the following columns:
Year = year(Datetable[Date])
Month = month (Datetable[Date])
Weeknum = WeekNum(Datetable[Date])
After that, follow the formula mentioned in the blog to generate the YTD, MTD and WTD function.
If any further help needed, please post back.
Regards
I have 3 columns "Month" & "Achievement" & "Location" that I need to create 1 calculated column to get "Average Number" from "Achievement" column using all location but in every month separated
The average should be like the table below but I can't get the number with DAX.
Kindly any advice
| Month | Achievement | Location | Average |
| 1/1/2017 | 80 | 101 | 85 |
| 1/1/2017 | 90 | 102 | 85 |
| 2/1/2017 | 20 | 103 | 40 |
| 2/1/2017 | 60 | 105 | 40 |
- Anonymous8 years agoNot applicable
Hi Mohamed,
I have a long shot solution for this.
1. Create a Date_Table with the following columns:
Date Week Month Quarter Year Month_Begin 1/1/2017 1 1 1 2017 Sunday, January 1, 2017 1/2/2017 1 1 1 2017 Sunday, January 1, 2017 1/3/2017 1 1 1 2017 Sunday, January 1, 2017 … … … … … … 2/1/2017 5 2 1 2017 Wednesday, February 1, 2017 2/2/2017 5 2 1 2017 Wednesday, February 1, 2017 2/3/2017 5 2 1 2017 Wednesday, February 1, 2017 For the Month_Begin column, create a calculated column using the following formula and make it a date format:
Month_Begin = 'Date_Table'[Month] & "-" & 'Date_Table'[Year]
2. Establish a relationship between the date from your achievement table to the Date of the Date_Table
3. Create your measure
Average = AVERAGE('Achivement'[Achievement])
4. Create a Matrix Table
Rows: 'Date_Table'[Month_Begin], 'Achievement'[Location]
Values: 'Achievement'[Average]
4. On your Matrix table, click on the double down arrow. You will now have your average for each Month_Begin as well as the break down for each location.
- ekkapob8 years agoNew Member
Hi mohamed901,
You can create column with this
Ave = CALCULATE(AVERAGE(Sheet1[Achievement]),FILTER(Sheet1,Sheet1[Month]=EARLIER(Sheet1[Month])))