Qlikview Rolling 52Wk Report - qlikview

I have a strange issue with Qlikview with a rolling 52 Week report that show sales units for items which works back from the current week (39) to week 40 of previous year. What is happening is that if an item has 0 sales for the week it populates the current week data with data with sales from a previous week. Example:
Week 39 (Current Week) had 0 sales of an item.
On my Qlikview table it kept the week 39 label but populated the sales data from the previous week (38) as there was sales. I have checked all of the table properties and unchecked suppress zero values, show all values etc.
How do i stop the table from hiding 0 values if there is no sales for the current week?
Thanks

Related

Power BI - Difference between amount per day and total in a table

I have a table with the sales from last 2 years, and I want to compare the sales from this year with the same natural day last year. For example, Sunday 1st of April 2018 will be compared with Sunday 2nd April 2017.
In order to do that I have created the measure
sales_last_year = CALCULATE(Sales[Revenue]); SAMEPERIODLASTYEAR(DATEADD('Calendar'[Date];+1;DAY)))
And I have created another measure where I have the value from the same day last year:
Prueba_sales_last_year = CALCULATE(Sales[Revenue]); SAMEPERIODLASTYEAR('Calendar'[Date]))
The result is the following:
Sales last year
As you can see the sales per day shows 5.316€ and 3.546€, which is correct, but the total is 111.796 €, which is not correct. However, the measure with the formula without the natural day the sum of the two rows is correct. How could I solve this?
Thank you very much in advance
I just changed the order to calculate the date and it was solved.
sales_last_year = CALCULATE(Sales[Revenue]);DATEADD( SAMEPERIODLASTYEAR('Calendar'[Date]);+1;DAY))

How do I summarise month to date forecast for current month in Power Pivot?

I have a table in a data model that has forecast figures for the next 3 months. What I want to do is to show what the forecast number for the current month to date is.
When I use the DATESMTD function like this:
=CALCULATE(SUM(InternetSales_USD[SalesAmount_USD]),DATESMTD(DateTime[DateKey]))
I get the last month of my data summarised as a total. I assume that is because the DATESMTD function takes the last date in the column and that is 3 months away.
How do I make sure I get this current month MTD total rather then the end of the calendar? The formula should be clever enough to realise I am in May and want the May MTD not the August MTD.
Any ideas?
The way to do this is to do this:
Forecast_Transaction_MTD:=CALCULATE(sum('ATO Online'[2017 Transaction Forecast]), DATESINPERIOD('ATO Online'[Current Year],TODAY(),-day(TODAY()),day))
the last -day(TODAY()) gets the day number for the current day and subtract it from today's date. So, today is the 25 May. the -day(TODAY())),day)) extracts the day (25) and subtracts it from the current date to get me to the 1 May.
The rest of the formula just adds the total for the dates.

Ms ACCESS: calculating past annual averages over varying date ranges

In a form on Ms ACCESS, a user can select a commodity (such as copper, nickel, etc.) from a list and a commodity price date from a list. A trailing 12 month average commodity price should then be calculated.
For example: the user selects Copper as commodity and February 1st 2010, 02/01/2010. I then want the average price to be calculated over the time period: [02/01/2009 - 02/01/2010].
I'm not sure how to write this in query form. This is the current incomplete code;
SELECT Avg(CommPrices.Price) AS Expr1,
FROM CommPrices
WHERE (((CommPrices.Commodity)=[Forms]![Tool Should Cost]![List243]))
AND CommPrices.DateComm = [Forms]![Tool Should Cost]![List55];
List243 is the list of commodities the user can select from, list55 is the list of dates the user can select. All data is obtained from the table CommPrices.
Note: the earliest dates in the column DateComm is 01/01/2008. So if the user selects a date for example 02/01/2008, then calculating the average over the past 12 months before 02/01/2008 won't be possible. I do want the code to still calculate the average using the dates available. (in the example it would just be the average over the past month)
Second Note: the column DateComm only has monthly dates for the first day of every month (e.g 01/01/2008, 02/01/2008, 03/01/2008). The dates listed in list55 can refer to different days in the month (e.g 03/16/2009), in that case I want the code to still calculate the past 12 month average using the closest commodity dates possible. So if the user selects date 03/16/2009, I want the code to calculate the 12 month average for 03/01/2008 - 03/01/2009.
For "integer" months it would be:
SELECT
Avg(CommPrices.Price) AS AveragePrice,
FROM
CommPrices
WHERE
CommPrices.Commodity=[Forms]![Tool Should Cost]![List243]
AND
CommPrices.DateComm = BETWEEN
DateSerial(Year([Forms]![Tool Should Cost]![List55]) - 1, Month([Forms]![Tool Should Cost]![List55]), 1)
AND
DateSerial(Year([Forms]![Tool Should Cost]![List55]), Month([Forms]![Tool Should Cost]![List55]), 1)

SQL Statement to return previous quarter balance

I'm trying to create a query that can return the previous quarter balance for a series of records.
I have financial data for accountid (acctid), fiscal year (fyear), fiscal quarter (fquarter) and fiscal period (fperiod) that I'm summing and tracking through a series of other queries that I'm dropping in to a temporary table, that data includes the net change for the period (nperiod), net change for the quarter (nquarter) and net change for the year (nyear). Net change for the period is only the account transactions in the period, net change for the quarter is the cumulative total of the transactions that appear in periods 1-3, 4-6, 7-9 and 10-12 respectively (amount from previous periods are not calculated in proceeding quarters, ie the net change for the quarter resets to $0 for periods 4, 7 and 9) and the net change for the year is the total cumulative sum. I'm now trying to create a sql statement that returns the previous quarter end balance.
So for periods 1-3 I need to write a separate select statements to return the ending balance for the previous year, for periods 4-6 I want them ALL to return the net change for the quarter from period 3, for 7-9 I want to return the net change for the quarter from period 6 for all records and for period 10-12 I want to return net change for the quarter from period 9.
Can I get some assistance because I have a gigantic query that returns the max period per quarter, then the nquarter amount associated with that period and then trying to do a where exists, but something tells me there's a better way to do it.
Thanks!

KPI indicator for QlikView report update status. (Weekly and monthly updated)

I have two reports, one that is updated monthly from the source, and one that is updated once per week.
I have a KPI report that I want to show red/green indicators if the report is updated this month/this week.
The last updated date is stored in a table and is loaded into QlikView. QVD_Id is the id of the QV report.
The monthly report is beeing updated around the 10th each month. I have created this set analysis that seems to be "almost" working.
=if(Max({<Day=, Date=, QVD_Id={1}, MonthCounter={"<=$(#max(MonthCounter))"}>} num(Date(Updated))-1,00) >= num(Dato),0,1)
What I ultematly want for this indicator, is for it to be red if has not been updated within a month, or actually if its not updated within the 6th working day of the month it should be red(But this requered som additions to the dimensions that I can do later).
I tried to do the same for the weekly report, but its not working:
=if(Max({<Day=, Date=, QVD_Id={2}, WeekCounter={"<=$(#max(WeekCounter))"}>} num(Date(Updated))) >= num(Dato),0,1)
What I want with the weekly updated report, is that it should be red if it's not updated by the 2nd day of the week(Tuesday).
Example of the facttable used:
QVD_Id TotalLoad LoadYear LoadMonth LoadDay LoadHour Updated Date_Lnr Source
1 200000 2014 2 5 10 .02.2014 10:56:31 19759 Source1
WeekCounter is 58 this week, and MonthCounter is 2. (WeekCounter is just continiuing from last year but that does not matter here).
Hope any of you have some more experience then me with this and can find a solution for this.
i think this is close to what you want:
// check is date less than the 6 in the month and not larger than max date -1 month
if(num(weekday(Max(Date))) <= 6 and
num(weekday(AddMonth(Max(Date),-1))) <= num(weekday(Max({$}Updated))), 1,0)