Hello,

I have created a spreadsheet which looks at various different worksheets in 
the same spreadsheet in order to return the data to one central worksheet. 
 I have then created a pivot table of this data.  My formula below contains 
a lot of If's and Index / Match.  The formula works but I was wondering if 
there is a better way to do this?  I have 2600 rows and 30 columns, the 
formula below is an example to return the data for day 1.  The same formula 
is used by day 2 but day 1 is replaced with day 2.  The spreadsheet is 22MB 
and it quite slow due to the number of calculations.  I was just wondering 
if anyone had any idea's?

Thanks in advance.

Brett  






=IF($O2="Balance",SUMIF($C:$C,$C2,U:U),IF(AND($O2="Cash Forecast 
Payment",(ISNA(INDEX(APM_CF_DAY1,MATCH($C2,APM_CF_NAME,0))))),0,IF(AND($O2="Cash
 
Forecast 
Payment",$N2="No"),INDEX(APM_CF_DAY1,MATCH($C2,APM_CF_NAME,0)),IF(AND($O2="Cash 
Forecast 
Payment",$K2="M",$N2="Yes"),INDEX(APM_CF_DAY1,MATCH($C2,APM_CF_NAME,0))*INDEX(ExchangeRate,MATCH(METADATA!$G2,CurrencyRate,0)),IF(AND($O2="Cash
 
Forecast 
Payment",$K2="D",$N2="Yes"),INDEX(APM_CF_DAY1,MATCH($C2,APM_CF_NAME,0))/INDEX(ExchangeRate,MATCH(METADATA!$G2,CurrencyRate,0)),IF(AND($O2="Cash
 
Forecast 
Receipt",(ISNA(INDEX(APM_CF_REC_DAY1,MATCH($C2,APM_CF_REC_NAME,0))))),0,IF(AND($O2="Cash
 
Forecast 
Receipt",$N2="No"),INDEX(APM_CF_REC_DAY1,MATCH($C2,APM_CF_REC_NAME,0)),IF(AND($O2="Cash
 
Forecast 
Receipt",$K2="M",$N2="Yes"),INDEX(APM_CF_REC_DAY1,MATCH($C2,APM_CF_REC_NAME,0))*INDEX(ExchangeRate,MATCH(METADATA!$G2,CurrencyRate,0)),IF(AND($O2="Cash
 
Forecast 
Receipt",$K2="D",$N2="Yes"),INDEX(APM_CF_REC_DAY1,MATCH($C2,APM_CF_REC_NAME,0))/INDEX(ExchangeRate,MATCH(METADATA!$G2,CurrencyRate,0)),IF(AND($O2="Treasury",(ISNA(INDEX(APM_TT_DAY1,MATCH($C2,APM_TT_NAME,0))))),0,IF(AND($O2="Treasury",$N2="No"),INDEX(APM_TT_DAY1,MATCH($C2,APM_TT_NAME,0)),IF(AND($O2="Treasury",$K2="M",$N2="Yes"),INDEX(APM_TT_DAY1,MATCH($C2,APM_TT_NAME,0))*INDEX(ExchangeRate,MATCH(METADATA!$G2,CurrencyRate,0)),IF(AND($O2="Treasury",$K2="D",$N2="Yes"),INDEX(APM_TT_DAY1,MATCH($C2,APM_TT_NAME,0))/INDEX(ExchangeRate,MATCH(METADATA!$G2,CurrencyRate,0)),IF(AND(OR($O2="Treasury
 
LoanDep",$O2="Treasury LoanDep 
Internal"),Data!$F$2="No"),0,IF(AND($O2="Treasury 
LoanDep",(ISNA(INDEX(APM_TT_LD_DAY1,MATCH($C2,APM_TT_LD_NAME,0))))),0,IF(AND($O2="Treasury
 
LoanDep",$N2="No"),INDEX(APM_TT_LD_DAY1,MATCH($C2,APM_TT_LD_NAME,0)),IF(AND($O2="Treasury
 
LoanDep",$K2="M",$N2="Yes"),INDEX(APM_TT_LD_DAY1,MATCH($C2,APM_TT_LD_NAME,0))*INDEX(ExchangeRate,MATCH(METADATA!$G2,CurrencyRate,0)),IF(AND($O2="Treasury
 
LoanDep",$K2="D",$N2="Yes"),INDEX(APM_TT_LD_DAY1,MATCH($C2,APM_TT_LD_NAME,0))/INDEX(ExchangeRate,MATCH(METADATA!$G2,CurrencyRate,0)),IF(AND($O2="Treasury
 
LoanDep 
Internal",(ISNA(INDEX(APM_LOANDEP_PARTYA_INTERNAL_DAY1,MATCH($C2,APM_LOANDEP_PARTYA_INTERNAL_NAME,0))))),0,IF(AND($O2="Treasury
 
LoanDep 
Internal",$N2="No"),INDEX(APM_LOANDEP_PARTYA_INTERNAL_DAY1,MATCH($C2,APM_LOANDEP_PARTYA_INTERNAL_NAME,0)),IF(AND($O2="Treasury
 
LoanDep 
Internal",$K2="M",$N2="Yes"),INDEX(APM_LOANDEP_PARTYA_INTERNAL_DAY1,MATCH($C2,APM_LOANDEP_PARTYA_INTERNAL_NAME,0))*INDEX(ExchangeRate,MATCH(METADATA!$G2,CurrencyRate,0)),IF(AND($O2="Treasury
 
LoanDep 
Internal",$K2="D",$N2="Yes"),INDEX(APM_LOANDEP_PARTYA_INTERNAL_DAY1,MATCH($C2,APM_LOANDEP_PARTYA_INTERNAL_NAME,0))/INDEX(ExchangeRate,MATCH(METADATA!$G2,CurrencyRate,0)),IF(AND($O2="Treasury
 
LoanDep 
External",(ISNA(INDEX(APM_LOANDEP_PARTYA_EXTERNAL_DAY1,MATCH($C2,APM_LOANDEP_PARTYA_EXTERNAL_NAME,0))))),0,IF(AND($O2="Treasury
 
LoanDep 
External",$N2="No"),INDEX(APM_LOANDEP_PARTYA_EXTERNAL_DAY1,MATCH($C2,APM_LOANDEP_PARTYA_EXTERNAL_NAME,0)),IF(AND($O2="Treasury
 
LoanDep 
External",$K2="M",$N2="Yes"),INDEX(APM_LOANDEP_PARTYA_EXTERNAL_DAY1,MATCH($C2,APM_LOANDEP_PARTYA_EXTERNAL_NAME,0))*INDEX(ExchangeRate,MATCH(METADATA!$G2,CurrencyRate,0)),IF(AND($O2="Treasury
 
LoanDep 
External",$K2="D",$N2="Yes"),INDEX(APM_LOANDEP_PARTYA_EXTERNAL_DAY1,MATCH($C2,APM_LOANDEP_PARTYA_EXTERNAL_NAME,0))/INDEX(ExchangeRate,MATCH(METADATA!$G2,CurrencyRate,0)),IF(AND($O2="MISC",$N2="No"),SUMIF(MiscEntries_AccountClass,"
 
  
"&$A2,MiscEntries_Day1),IF(AND($O2="Misc",$N2="Yes",$K2="M"),SUMIF(MiscEntries_AccountClass,$C2,MiscEntries_Day1)*INDEX(ExchangeRate,MATCH(METADATA!$G2,CurrencyRate,0)),SUMIF(MiscEntries_AccountClass,$C2,MiscEntries_Day1)/INDEX(ExchangeRate,MATCH(METADATA!$G2,CurrencyRate,0))))))))))))))))))))))))))))))

-- 
Are you =EXP(E:RT) or =NOT(EXP(E:RT)) in Excel? And do you wanna be? It’s 
=TIME(2,DO:IT,N:OW) ! Join official Facebook page of this forum @ 
https://www.facebook.com/discussexcel

FORUM RULES

1) Use concise, accurate thread titles. Poor thread titles, like Please Help, 
Urgent, Need Help, Formula Problem, Code Problem, and Need Advice will not get 
quick attention or may not be answered.
2) Don't post a question in the thread of another member.
3) Don't post questions regarding breaking or bypassing any security measure.
4) Acknowledge the responses you receive, good or bad.
5) Jobs posting is not allowed.
6) Sharing copyrighted material and their links is not allowed.

NOTE  : Don't ever post confidential data in a workbook. Forum owners and 
members are not responsible for any loss.
--- 
You received this message because you are subscribed to the Google Groups "MS 
EXCEL AND VBA MACROS" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to excel-macros+unsubscr...@googlegroups.com.
To post to this group, send email to excel-macros@googlegroups.com.
Visit this group at http://groups.google.com/group/excel-macros.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to