I made the following formula to pull data from one workbook to another. As long as the source workbook is open, it works fine, but as soon as it's closed all the cells using this formula return #VALUE! errors. Can anyone tell me what the problem is?

Here is the formula:

{=IF($A$21="","",(IF(ROWS(C$20:$C20)>$L$20,"",INDEX('[Transactions.xls]All'!$B$1:$B1827,SMALL(IF('[Transactions.xls]All'!$A$1:$A1827=$A$21,ROW('[Transactions.xls]All'!$B$1:$B1827)-ROW('[Transactions.xls]All'!$B$1)+1),ROWS(C$20:$C20))))))}

Thanks in advance.