I have a calculation where I need to divide the budget by 12 and then multiply by the number of months passed not including this month.
So for this month, I have DIVIDE([GP Budget $],12)*4. But I obviously don't want to have to change the calculation every month. My calendar table has a month number so I was hoping to return that value depending on what the previous month is. I'm sure there are about a thousand ways to do this but I'm still new to BI and my Bing searches are failing me.
I have some Retirement fund data which I visualize with scatterplots and bar charts.
I am filtering the data with a Year slicer and a quarter filter (and fund type, but this is not relevant).
In my report I have 6 visuals, 4 of which are quarterly data, and two are yearly data.
I am using a bar chart visual to show certain values like the following:
My visual shows Quarter data for the selected Year. ( for example: it shows the invested equity per quarter for the year 2018)
However, for 2019 only 3 quarters are yet recorded.
Is it possible (for 2019) to show 3 quarters of 2019 and the last quarter of 2018 so that my bar chart still shows 4 quarters?
If so, could i make it so that the year is also visualized on the x axis so that one may not get confused as to what year the quarter is from? (i.e. show Q4 2018 and Q1, Q2, Q3 2019)
The best option is to have a current month indicator in your calendar table, which then counts back and forward in time. This example is based on Power Query and has current month and years/quarters/months ago. So for example March would be 0, Feb would be -1 etc.
You could also use something like in DAX as a calculated column:
Months = DATEDIFF([start],[end],MONTH)
with the Start being NOW() and the end the date in your calendar table
When the report refreshes it will recalculate the months ago and filter the visual so it will always correctly show the current Nth months you select. You could also use TOP, but if the calendar has dates in the future it might return those.
The top visual displays the unfiltered visual, the bottom with the 'Months ago' of 0, -1, -2, -3
I need help working out the working days so i can calculate a weekly target by:
target / Working days in a Month (Total) = Daily Target
Daily Target * Working days in a week = Weekly Target
My target is set on the 1st of the month so that is why i need to spread it across weeks.
My columns:
Date
Month
Year
Week Number (1-52)
Week day (1-7)
Weekinmonth
Working day (1 & 0)
Day in Month (1-31)
What i need:
I need to list out the dates filtering out the working dates as another column (Does not show the dates that are on the weekend, these will be blank), need to return the working days as 1-31 as another column (same as the DAY function) so i can make a MAX formula to get the Working days in a month to by divided by the target to make the daily target. I am unsure how i will get the Working days in a week.
Can anyone help??
I work in an educational department where the start date of our academic calendar changes every year. Some years it might be week 9 of the year, some years it might be week 10. There is no formula used to figure out this start date, it's based a combination of factors and is picked by humans.
I want to be able to compare calls received in week 1 of the academic calendar 2017 to calls received in week 1 of the academic calendar 2018 and 2019.
I am using PowerBI desktop and trying to create a calendar table that includes a column "academic calendar week" or similar.
Does anyone have any suggestions on how to offset start date of the calendar by a different number of weeks for each year?
I am attempting to calculate the most recent 6-Month STDEVX.P (not including the current month; so in May 2017, I'd like to the STDEVX.P for periods Nov 2016 - Apr 2017) for sales by product in order to further calculate variation in sales orders.
The Sales Data is made up of daily transactions so it contains transaction date: iContractsChargebacks[TransactionDate] and units sold: iContractsChargebacks[ChargebackUnits], but if there are no sales in a given period, then there will be no data for that month.
So, for example, on July 1st, sales for the past 6 months were the following:
Jan 100
Feb 125
Apr 140
May 125
Jun 130
March is missing because there were no sales. So, when I calculate STDEVX.P on the data set, it is calculating it over 5 periods, when in fact there were 6, just one happens to be zero.
At the end of the day, I need to calculate STDEVX.P for the current six month period. If when pulling the monthly sales numbers, it only comes back with 3 periods(months), then it needs to assume the other 3 periods with a zero value.
I thought about manually calculating standard deviation instead of using the DAX STDEVX.P formula and found these 2 links as a reference on how to do so, the first being closest to my need:
https://community.powerbi.com/t5/Desktop/Problem-with-STDEV/td-p/19731
Calculating the standard deviation from columns of values and frequencies in Power BI...
I attempted to make a go of it, but still am not getting the correct calculation. My code is:
STDEVX2 =
var Averageprice=[6M Sales]
var months=6
return
SQRT(
DIVIDE(SUMX(
FILTER(ALL(DimDate),
DimDate[Month ID]<=(MAX(DimDate[Month ID])-1) &&
DimDate[Month ID]>=(MAX(DimDate[Month ID])-6)
),
(iContractsChargebacks[SumOfOrderQuantity]-Averageprice)^2),
months
)
)
*note: Instead of using date parameters in the code, I created a calculated column in the date table that gives each Month a unique ID, makes it easier for me.
Your question would definitely be easier to answer with more explanation regarding your model. E.g. how you defined [SumOfOrderQuantity] and [6M Sales], since a mistake there could definitely impact the final result. Also, knowing what the result you're seeing is vs. the result you expect would be helpful (using sample data).
My guess, however, is that your DimDate table is a standard date table (with one row per date), but you want standard deviation by month.
The FILTER statement in your formula limits the date range to the prior 6 full months correctly, but it will still have one row per date. You can confirm this in Power BI by going into the Data View, selecting 'New Table' under Modeling on the ribbon, and putting your FILTER statement in:
Table = FILTER(ALL(DimDate),
DimDate[MonthID]<=(MAX(DimDate[MonthID])-1) &&
DimDate[MonthID]>=(MAX(DimDate[MonthID])-6))
Assuming you have more than one day of sales for a given month, calculating the variance by day rather than by month is going to mess things up.
What I'd suggest trying:
Table = FILTER(SUMMARIZE(ALL(DimDate),[MonthID]),
DimDate[MonthID]<=(MAX(DimDate[MonthID])-1) &&
DimDate[MonthID]>=(MAX(DimDate[MonthID])-6))
The additional SUMMARIZE statement means that you only get one row for each MonthID, rather than 1 row for each date. If your [6M Sales] is the monthly average across all 6 months, and [SumOfOrderQuantity] is the monthly sum for each month, then you should be set to go calculating the variance, squaring, dividing by 6, and square rooting.
If you need to do further troubleshooting, remember you can put a table on your canvas with MonthID, SumOfOrderQuantity and [6M Sales] and compare the numbers you expect at each stage of the calculation with the numbers you're seeing.
Hope this helps.
I was facing a similar problem while trying to calculate the coefficient of variation (Std. /Mean) by SKUS from sales data. I could use the Pivot-Unpivot function in Power Query editor to to do away with the problem of months with missing sales:
1) Export the data with any calculated columns
2) Reimport the data so that the calculated columns are also available in the power query editor
3) Pivoted the data by months
4) Replaced null values with 0s
5) Unpivoted the data
6) Close and apply the query
7) Add a calculated column for the coefficient of variation using the formula
CV = CALCULATE(STDEV.P(Table1[Value]),ALLEXCEPT(Table1,Table1[Product]))/CALCULATE(AVERAGE(Table1[Value]),ALLEXCEPT(Table1,Table1[Product]))
Thus zero sales for the missing months will also be considered both for Standard Deviation and Mean.