Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hi,
I wanted to compare the total sales amount of the current month to the total sales amount of the previous month.
I tried using the below expression, but the previous month script does not seems to work. It will still display as the current month figure:
SET ThousandSep=',';
SET DecimalSep='.';
SET MoneyThousandSep=',';
SET MoneyDecimalSep='.';
SET MoneyFormat='$#,##0.00;($#,##0.00)';
SET TimeFormat='h:mm:ss TT';
SET DateFormat='MM/DD/YYYY';
SET TimestampFormat='MM/DD/YYYY h:mm:ss[.fff] TT';
SET MonthNames='Jan;Feb;Mar;Apr;May;Jun;Jul;Aug;Sep;Oct;Nov;Dec';
SET DayNames='Mon;Tue;Wed;Thu;Fri;Sat;Sun';
LOAD Year,
Month,
Product,
Sales,
Date(Date#(Left(FileBaseName(), 10), 'MM/DD/YYYY')) As FileDate
FROM
(biff, embedded labels, table is Sheet1$);
Current Month Expression:
= sum({<FileDate = {">=$(=MonthStart(Today()))<= $(=MonthEnd(Today()))"}>}Sales)
Previous Month Expression:
= sum({<FileDate = {">=$(=MonthStart(AddMonths(Today(),-1)))<= $(=MonthEnd(AddMonths(Today(),-1)))"}>}Sales)
Please help. Appreciate your time and help in this.
Thank you.
Hi Andy,
You look like you had got yourself in a bit of an over complicated situation there. There was a significant bug in the INLINE load - causing the field names to be mangled.
All of the derivation of date parts is much more easily done in script, rather than joining inline tables anyway. Also, you only need the one Date field as you can derive everything else from that. The load script then simply becomes:
ExpenseData:
LOAD
Date,
Month(Date) as Month,
Date(MonthStart(Date), 'MMM-YYYY') as [Month Year],
Year(Date) as Year,
Expenses,
Act_Amt
FROM [.\Data2.xls]
(biff, embedded labels, table is Sheet3$);
You can add a whole lot of other Date derivations if you like (quarter etc.) you will find code for these on the Community forum - or in the examples I posted links to above.
For simple month to date comparison you need only two variables set:
set vMaxMonthYear = =Date(max([Month Year]), 'MMM-YYYY');
set vPriorMonthYear = =Date(addmonths(max([Month Year]), -1), 'MMM-YYYY');
And then the expressions for the current month and prior month columns are simply:
Sum({<[Month Year]={'$(vMaxMonthYear)'},Year=,Month=,Date=>}Act_Amt)
and
Sum({<[Month Year]={'$(vPriorMonthYear)'},Year=,Month=,Date=>}Act_Amt)
The short coming of this is that the current month will most likely only be month to date (as you can't look into the future) and the prior month will be a full month. As all of your dates are in as day one then this is the best you can do anyway. If you had days in the data you would also want to derive the day number, in the load:
Day(Date) as Day,
Find the day for the max month:
set vMaxDay = =Day(Max(Date));
And then include that in the expressions also:
Sum({<[Month Year]={'$(vPriorMonthYear)'},Day={'<=$(vMaxDay)'},Year=,Month=,Date=>}Act_Amt)
The only thing you would need to worry about there is months with fewer days, ie. on the 28th of Feb you would probably want to compare with the 31st of Jan - not the 28th.
You then also get into seasonality and number of weekends in any given month - and things start getting a lot more complicated. I digress.
Hopefully the load script amendments, variables and expressions at the top of this post will solve your immediate issues.
I've attached a working example as well.
Regards,
Steve
Hi,
The above expressions are correct. just check the format of date Field. Ideally it should be in Number.
Try using below expression.
LOAD Year,
Month,
Product,
Sales,
Date(Date#(Left(FileBaseName(), 10), 'MM/DD/YYYY')) As FileDate1,
num(Date(Date#(Left(FileBaseName(), 10), 'MM/DD/YYYY'))) As FileDate
FROM
(biff, embedded labels, table is Sheet1$);
Current Month Expression:
= sum({<FileDate1 = {">=$(=MonthStart(Today()))<= $(=MonthEnd(Today()))"}>}Sales)
Previous Month Expression:
= sum({<FileDate1 = {">=$(=num(floor(MonthStart(AddMonths(Today(),-1)))))<= $(=num(floor(MonthEnd(AddMonths(Today(),-1)))))"}>}Sales)
-Nilesh
See the attached file.
You can apply this in ur application
hope this helps
Hi Nilesh,
Thank you for your reply.
The date format is in number but it still doesn't work.
But thanks for helping out, really appreciate it.
Hi Sunil,
Thank you very much for taking your time to create a dummy file. It is very helpful.
It works now.
Thank you!
Hi Sunil,
If I want to display the months from Jan-Dec, without Duplicate. How should I go about doing it?
Currently, it will display as follow:
Attached a working file and data file for your reference:
Hi,
You can separate your month field from your date.
use Month(yourdatefield) as Month
see the attached file
I THING Requirement chart is what you looking for.
hope this helps
Hi max,
Could you show an example using my working file attached?
Thank you!
Hi Sunil,
No, i wasn't looking for a requirement chart. In fact i need to create a dashboard, so the Month field ideally should not be an extensive list.
I've tried this as well, it display the months field properly but there are 2 issues:
1. I need to display the month number in a text month format, but when i tried to change it to the month format, data does not display properly.
2. The data for previous month of Jan i.e. Dec does not appear.
Maybe you have a solution to the one above?