Hi there
I have a really slow workbook that has 88 sumifs formulas plus 22 array formulas.
While I was pretty pleased that I'd figured out how to write them, I'm pretty sure that there must be a way of rewriting them to make them faster.
This is a weekly task for me and currently the workbook is taking up to 5 minutes to calculate.
The sumifs are along these lines:
=ROUND(
SUMIFS(Units,Dept_Id,B2,Line_Descr,"Earnings",Account,"800000")
+SUMIFS(Units,Dept_Id,B2,Line_Descr,"Earnings",Account,"800500")
+SUMIFS(Units,Dept_Id,B2,Paycode,"N*",Account,"800000")
+SUMIFS(Units,Dept_Id,B2,Paycode,"N*",Account,"800500")
+SUMIFS(Units,Dept_Id,B2,Paycode,"R*",Account,"800000")
+SUMIFS(Units,Dept_Id,B2,Paycode,"R*",Account,"800500")
+SUMIFS(Units,Dept_Id,B2,Line_Descr,"Earnings",Account,"800100")
+SUMIFS(Units,Dept_Id,B2,Line_Descr,"Earnings",Account,"800215")
+SUMIFS(Units,Dept_Id,B2,Paycode,"N*",Account,"800100")
+SUMIFS(Units,Dept_Id,B2,Paycode,"N*",Account,"800215")
+SUMIFS(Units,Dept_Id,B2,Paycode,"R*",Account,"800100")
+SUMIFS(Units,Dept_Id,B2,Paycode,"R*",Account,"800215"),2)
While my arrays are along these lines:
{=SUM(IF((B2=Dept_Id)*("Earnings"=Line_Descr)*("800000"=Account),1/COUNTIFS(Dept_Id,B2,Emplid,Emplid,Line_Descr,"Earnings",Account,"800000")),0)
+SUM(IF((B2=Dept_Id)*("Earnings"=Line_Descr)*("800500"=Account),1/COUNTIFS(Dept_Id,B2,Emplid,Emplid,Line_Descr,"Earnings",Account,"800500")),0)
+SUM(IF((B2=Dept_Id)*("Earnings"=Line_Descr)*("800100"=Account),1/COUNTIFS(Dept_Id,B2,Emplid,Emplid,Line_Descr,"Earnings",Account,"800100")),0)
+SUM(IF((B2=Dept_Id)*("Earnings"=Line_Descr)*("800215"=Account),1/COUNTIFS(Dept_Id,B2,Emplid,Emplid,Line_Descr,"Earnings",Account,"800215")),0)}
Any assistance would be greatly appreciated.
I have a really slow workbook that has 88 sumifs formulas plus 22 array formulas.
While I was pretty pleased that I'd figured out how to write them, I'm pretty sure that there must be a way of rewriting them to make them faster.
This is a weekly task for me and currently the workbook is taking up to 5 minutes to calculate.
The sumifs are along these lines:
=ROUND(
SUMIFS(Units,Dept_Id,B2,Line_Descr,"Earnings",Account,"800000")
+SUMIFS(Units,Dept_Id,B2,Line_Descr,"Earnings",Account,"800500")
+SUMIFS(Units,Dept_Id,B2,Paycode,"N*",Account,"800000")
+SUMIFS(Units,Dept_Id,B2,Paycode,"N*",Account,"800500")
+SUMIFS(Units,Dept_Id,B2,Paycode,"R*",Account,"800000")
+SUMIFS(Units,Dept_Id,B2,Paycode,"R*",Account,"800500")
+SUMIFS(Units,Dept_Id,B2,Line_Descr,"Earnings",Account,"800100")
+SUMIFS(Units,Dept_Id,B2,Line_Descr,"Earnings",Account,"800215")
+SUMIFS(Units,Dept_Id,B2,Paycode,"N*",Account,"800100")
+SUMIFS(Units,Dept_Id,B2,Paycode,"N*",Account,"800215")
+SUMIFS(Units,Dept_Id,B2,Paycode,"R*",Account,"800100")
+SUMIFS(Units,Dept_Id,B2,Paycode,"R*",Account,"800215"),2)
While my arrays are along these lines:
{=SUM(IF((B2=Dept_Id)*("Earnings"=Line_Descr)*("800000"=Account),1/COUNTIFS(Dept_Id,B2,Emplid,Emplid,Line_Descr,"Earnings",Account,"800000")),0)
+SUM(IF((B2=Dept_Id)*("Earnings"=Line_Descr)*("800500"=Account),1/COUNTIFS(Dept_Id,B2,Emplid,Emplid,Line_Descr,"Earnings",Account,"800500")),0)
+SUM(IF((B2=Dept_Id)*("Earnings"=Line_Descr)*("800100"=Account),1/COUNTIFS(Dept_Id,B2,Emplid,Emplid,Line_Descr,"Earnings",Account,"800100")),0)
+SUM(IF((B2=Dept_Id)*("Earnings"=Line_Descr)*("800215"=Account),1/COUNTIFS(Dept_Id,B2,Emplid,Emplid,Line_Descr,"Earnings",Account,"800215")),0)}
Any assistance would be greatly appreciated.