Fenrirshowl
Technical User
I have an Excel spreadsheet (2003) which is used to monitor post coming into and out of the office, set deadlines, and monitor completion times.
I know the thing should really be in Access but, having to follow orders, it is in Excel.
I am hoping I can improve the calculation speed with some advice from the Masters.
The problem is with the monitoring/reporting side of things. I need to produce two sets of monthly reports, effectively giving figures on all possible variations of the status of each item of post: Outstanding pre deadline, Outstanding post deadline, Completed pre deadline, Completed post deadline, on a month by month basis.
One report is on all post items, another is for a subset of two clients on which we get monitored differently.
The post items is basically a table of data 16 columns long and circa 9000 rows (and counting). The final 3 columns are functions (couple of IF statements and a VLOOKUP - nothing I would deem too serious for Excel)
I have used SUMPRODUCT functions to do the reporting. Unfortunately, due the month by month nature, I cannot (or rather believe I cannot) eliminate the functions for a given month until all post items are complete. [By eliminate, I mean copy and paste values, to maintain the historic data]
An example of the SUMPRODUCT funtion is
=SUMPRODUCT(--(INDIRECT(ColP)=$A23),--INDIRECT(ColH),(INDIRECT(ColB)>=$B23)*(INDIRECT(ColB)<=$D23))
The ColX references are named cells which provide the necessary reference such as Input!X20:X8900 (where the actual cell entry is ="Input!X20:X" & freerow, where freerow is a calculated cell.
The first INDIRECT checks the client, second returns a quantity/weighting value, 3rd and 4th ensure the date the post was received is within the date markers held in B and D columns. This is the most basic of the functions, with other comparisons being included in the SUMPRODUCT fields.e.g.
=SUMPRODUCT(--(INDIRECT(ColP)=$A23),--INDIRECT(ColH),(INDIRECT(ColB)>=$B23)*(INDIRECT(ColB)<=$D23),--(INDIRECT(ColO)<>"Target achieved"),--(INDIRECT(ColK)=""),--(INDIRECT(ColN)="**Outstanding**"))+SUMPRODUCT(--(INDIRECT(ColP)=$A23),--INDIRECT(ColH),(INDIRECT(ColB)>=$B23)*(INDIRECT(ColB)<=$D23),--(INDIRECT(ColO)<>"Target achieved"),--(INDIRECT(ColK)>=$D23+1),--(INDIRECT(ColN)="**Outstanding**"),--(INDIRECT(ColK)>DTPrevReport),--(INDIRECT(ColK)<=DTCurrRep))-O23
There are 14 SUMPRODUCT functions per month, which is what is slowing things down.
Currently, if a piece of post is booked out (by simply entering a date in a given cell) it takes about 25 second for the sheet to calculate and then allow the user to input the second date.
Are there any suggestions to streamline the process?
Please note, I would like to avoid having to turn on Manual Calculation if possible, as it tends to confuse the staff.
I have also been asked to incorporate monitoring of individual recipients (which will be similar to what I already have but changing client to recipient). Obviously this which will slow things down further.
Any suggestions greatly appreciated.
Regards,
Fen
I know the thing should really be in Access but, having to follow orders, it is in Excel.
I am hoping I can improve the calculation speed with some advice from the Masters.
The problem is with the monitoring/reporting side of things. I need to produce two sets of monthly reports, effectively giving figures on all possible variations of the status of each item of post: Outstanding pre deadline, Outstanding post deadline, Completed pre deadline, Completed post deadline, on a month by month basis.
One report is on all post items, another is for a subset of two clients on which we get monitored differently.
The post items is basically a table of data 16 columns long and circa 9000 rows (and counting). The final 3 columns are functions (couple of IF statements and a VLOOKUP - nothing I would deem too serious for Excel)
I have used SUMPRODUCT functions to do the reporting. Unfortunately, due the month by month nature, I cannot (or rather believe I cannot) eliminate the functions for a given month until all post items are complete. [By eliminate, I mean copy and paste values, to maintain the historic data]
An example of the SUMPRODUCT funtion is
=SUMPRODUCT(--(INDIRECT(ColP)=$A23),--INDIRECT(ColH),(INDIRECT(ColB)>=$B23)*(INDIRECT(ColB)<=$D23))
The ColX references are named cells which provide the necessary reference such as Input!X20:X8900 (where the actual cell entry is ="Input!X20:X" & freerow, where freerow is a calculated cell.
The first INDIRECT checks the client, second returns a quantity/weighting value, 3rd and 4th ensure the date the post was received is within the date markers held in B and D columns. This is the most basic of the functions, with other comparisons being included in the SUMPRODUCT fields.e.g.
=SUMPRODUCT(--(INDIRECT(ColP)=$A23),--INDIRECT(ColH),(INDIRECT(ColB)>=$B23)*(INDIRECT(ColB)<=$D23),--(INDIRECT(ColO)<>"Target achieved"),--(INDIRECT(ColK)=""),--(INDIRECT(ColN)="**Outstanding**"))+SUMPRODUCT(--(INDIRECT(ColP)=$A23),--INDIRECT(ColH),(INDIRECT(ColB)>=$B23)*(INDIRECT(ColB)<=$D23),--(INDIRECT(ColO)<>"Target achieved"),--(INDIRECT(ColK)>=$D23+1),--(INDIRECT(ColN)="**Outstanding**"),--(INDIRECT(ColK)>DTPrevReport),--(INDIRECT(ColK)<=DTCurrRep))-O23
There are 14 SUMPRODUCT functions per month, which is what is slowing things down.
Currently, if a piece of post is booked out (by simply entering a date in a given cell) it takes about 25 second for the sheet to calculate and then allow the user to input the second date.
Are there any suggestions to streamline the process?
Please note, I would like to avoid having to turn on Manual Calculation if possible, as it tends to confuse the staff.
I have also been asked to incorporate monitoring of individual recipients (which will be similar to what I already have but changing client to recipient). Obviously this which will slow things down further.
Any suggestions greatly appreciated.
Regards,
Fen