Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
CMB
 
Posts: n/a
Default Links only update when external workbook is open

I have a formula that sums a range from a column in another workbook. The
formula works fine when the source workbook is open. However, when the source
workbook is closed, I get a #VALUE! error or a !REF# error depending on the
function I use.

I've tried to compute the sum using both the OFFSET and INDEX functions, but
to no avail.

Here are two things I've tried:

1. Using the OFFSET function:

=SUM(OFFSET('[Daily-Data.xls]Daily'!$F$5,273,0,303,1))

When the Daily-Data.xls workbook is closed I get a #VALUE! error. I heard
that OFFSET is a volatile function. So I rewrote my formula to use the
non-volatile INDEX function.


2. Using the INDEX function:

=SUM(INDEX('[Daily-Data.xls]Daily'!$F$5:$F$369,274):INDEX('[Daily-Data.xls]Daily'!$F$5:$F$369,302))

However, when the Daily-Data.xls workbook is closed I get a #REF! error.

Both of these formulas work fine when the source workbook is open.

What's the best way to sum a range of columns from another worksheet without
having to open the source worksheet each time??

Thanks!
  #2   Report Post  
Harlan Grove
 
Posts: n/a
Default Links only update when external workbook is open

CMB wrote...
....
1. Using the OFFSET function:

=SUM(OFFSET('[Daily-Data.xls]Daily'!$F$5,273,0,303,1))

....
2. Using the INDEX function:

=SUM(INDEX('[Daily-Data.xls]Daily'!$F$5:$F$369,274):
INDEX('[Daily-Data.xls]Daily'!$F$5:$F$369,302))

....
Both of these formulas work fine when the source workbook is open.

....

These two formulas sum different ranges. The OFFSET formula sums
F278:F580 while the INDEX formula sums F278:F306. Which do you want?

The short but technical answer is that you're using both OFFSET and
INDEX to return range references, but external references into closed
workbooks *NEVER* resolve to range references, rather they're returned
as arrays.

You need to use something like the following.

=SUMPRODUCT('[Daily-Data.xls]Daily'!$F$1:$F$580,
(ROW('[Daily-Data.xls]Daily'!$F$1:$F$580)=k)
*(ROW('[Daily-Data.xls]Daily'!$F$1:$F$580)<=n))

If you want to sum F278:F580, make it

=SUMPRODUCT('[Daily-Data.xls]Daily'!$F$1:$F$580,
(ROW('[Daily-Data.xls]Daily'!$F$1:$F$580)=278)
*(ROW('[Daily-Data.xls]Daily'!$F$1:$F$580)<=580))

  #3   Report Post  
CMB
 
Posts: n/a
Default Links only update when external workbook is open

Thanks! That did the trick. Also, I was trying to sum F278:F306. I just
had some fat fingers when I typed the OFFSET formula.

"Harlan Grove" wrote:

CMB wrote...
....
1. Using the OFFSET function:

=SUM(OFFSET('[Daily-Data.xls]Daily'!$F$5,273,0,303,1))

....
2. Using the INDEX function:

=SUM(INDEX('[Daily-Data.xls]Daily'!$F$5:$F$369,274):
INDEX('[Daily-Data.xls]Daily'!$F$5:$F$369,302))

....
Both of these formulas work fine when the source workbook is open.

....

These two formulas sum different ranges. The OFFSET formula sums
F278:F580 while the INDEX formula sums F278:F306. Which do you want?

The short but technical answer is that you're using both OFFSET and
INDEX to return range references, but external references into closed
workbooks *NEVER* resolve to range references, rather they're returned
as arrays.

You need to use something like the following.

=SUMPRODUCT('[Daily-Data.xls]Daily'!$F$1:$F$580,
(ROW('[Daily-Data.xls]Daily'!$F$1:$F$580)=k)
*(ROW('[Daily-Data.xls]Daily'!$F$1:$F$580)<=n))

If you want to sum F278:F580, make it

=SUMPRODUCT('[Daily-Data.xls]Daily'!$F$1:$F$580,
(ROW('[Daily-Data.xls]Daily'!$F$1:$F$580)=278)
*(ROW('[Daily-Data.xls]Daily'!$F$1:$F$580)<=580))


  #4   Report Post  
Harlan Grove
 
Posts: n/a
Default Links only update when external workbook is open

CMB wrote...
....
1. Using the OFFSET function:

=SUM(OFFSET('[Daily-Data.xls]Daily'!$F$5,273,0,303,1))

....
2. Using the INDEX function:

=SUM(INDEX('[Daily-Data.xls]Daily'!$F$5:$F$369,274):
INDEX('[Daily-Data.xls]Daily'!$F$5:$F$369,302))

....
Both of these formulas work fine when the source workbook is open.

....

These two formulas sum different ranges. The OFFSET formula sums
F278:F580 while the INDEX formula sums F278:F306. Which do you want?

The short but technical answer is that you're using both OFFSET and
INDEX to return range references, but external references into closed
workbooks *NEVER* resolve to range references, rather they're returned
as arrays.

You need to use something like the following.

=SUMPRODUCT('[Daily-Data.xls]Daily'!$F$1:$F$580,
(ROW('[Daily-Data.xls]Daily'!$F$1:$F$580)=k)
*(ROW('[Daily-Data.xls]Daily'!$F$1:$F$580)<=n))

If you want to sum F278:F580, make it

=SUMPRODUCT('[Daily-Data.xls]Daily'!$F$1:$F$580,
(ROW('[Daily-Data.xls]Daily'!$F$1:$F$580)=278)
*(ROW('[Daily-Data.xls]Daily'!$F$1:$F$580)<=580))

  #5   Report Post  
Harlan Grove
 
Posts: n/a
Default Links only update when external workbook is open

CMB wrote...
....
1. Using the OFFSET function:

=SUM(OFFSET('[Daily-Data.xls]Daily'!$F$5,273,0,303,1))

....
2. Using the INDEX function:

=SUM(INDEX('[Daily-Data.xls]Daily'!$F$5:$F$369,274):
INDEX('[Daily-Data.xls]Daily'!$F$5:$F$369,302))

....
Both of these formulas work fine when the source workbook is open.

....

These two formulas sum different ranges. The OFFSET formula sums
F278:F580 while the INDEX formula sums F278:F306. Which do you want?

The short but technical answer is that you're using both OFFSET and
INDEX to return range references, but external references into closed
workbooks *NEVER* resolve to range references, rather they're returned
as arrays.

You need to use something like the following.

=SUMPRODUCT('[Daily-Data.xls]Daily'!$F$1:$F$580,
(ROW('[Daily-Data.xls]Daily'!$F$1:$F$580)=k)
*(ROW('[Daily-Data.xls]Daily'!$F$1:$F$580)<=n))

If you want to sum F278:F580, make it

=SUMPRODUCT('[Daily-Data.xls]Daily'!$F$1:$F$580,
(ROW('[Daily-Data.xls]Daily'!$F$1:$F$580)=278)
*(ROW('[Daily-Data.xls]Daily'!$F$1:$F$580)<=580))



  #6   Report Post  
Harlan Grove
 
Posts: n/a
Default Links only update when external workbook is open

CMB wrote...
....
1. Using the OFFSET function:

=SUM(OFFSET('[Daily-Data.xls]Daily'!$F$5,273,0,303,1))

....
2. Using the INDEX function:

=SUM(INDEX('[Daily-Data.xls]Daily'!$F$5:$F$369,274):
INDEX('[Daily-Data.xls]Daily'!$F$5:$F$369,302))

....
Both of these formulas work fine when the source workbook is open.

....

These two formulas sum different ranges. The OFFSET formula sums
F278:F580 while the INDEX formula sums F278:F306. Which do you want?

The short but technical answer is that you're using both OFFSET and
INDEX to return range references, but external references into closed
workbooks *NEVER* resolve to range references, rather they're returned
as arrays.

You need to use something like the following.

=SUMPRODUCT('[Daily-Data.xls]Daily'!$F$1:$F$580,
(ROW('[Daily-Data.xls]Daily'!$F$1:$F$580)=k)
*(ROW('[Daily-Data.xls]Daily'!$F$1:$F$580)<=n))

If you want to sum F278:F580, make it

=SUMPRODUCT('[Daily-Data.xls]Daily'!$F$1:$F$580,
(ROW('[Daily-Data.xls]Daily'!$F$1:$F$580)=278)
*(ROW('[Daily-Data.xls]Daily'!$F$1:$F$580)<=580))

  #7   Report Post  
RagDyer
 
Posts: n/a
Default Links only update when external workbook is open

In case you can't see your posts, I see 4 of them.
--
HTH,

RD
==============================================
Please keep all correspondence within the Group, so all may benefit!
==============================================


"Harlan Grove" wrote in message
oups.com...
CMB wrote...
...
1. Using the OFFSET function:

=SUM(OFFSET('[Daily-Data.xls]Daily'!$F$5,273,0,303,1))

...
2. Using the INDEX function:

=SUM(INDEX('[Daily-Data.xls]Daily'!$F$5:$F$369,274):
INDEX('[Daily-Data.xls]Daily'!$F$5:$F$369,302))

...
Both of these formulas work fine when the source workbook is open.

...

These two formulas sum different ranges. The OFFSET formula sums
F278:F580 while the INDEX formula sums F278:F306. Which do you want?

The short but technical answer is that you're using both OFFSET and
INDEX to return range references, but external references into closed
workbooks *NEVER* resolve to range references, rather they're returned
as arrays.

You need to use something like the following.

=SUMPRODUCT('[Daily-Data.xls]Daily'!$F$1:$F$580,
(ROW('[Daily-Data.xls]Daily'!$F$1:$F$580)=k)
*(ROW('[Daily-Data.xls]Daily'!$F$1:$F$580)<=n))

If you want to sum F278:F580, make it

=SUMPRODUCT('[Daily-Data.xls]Daily'!$F$1:$F$580,
(ROW('[Daily-Data.xls]Daily'!$F$1:$F$580)=278)
*(ROW('[Daily-Data.xls]Daily'!$F$1:$F$580)<=580))


Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
How to find links to another workbook? shellshock Excel Discussion (Misc queries) 1 August 3rd 05 11:17 PM
inter workbook links do not update even when both are open ??? Lawrenph Excel Discussion (Misc queries) 3 June 3rd 05 02:14 PM
Edit Links: make update manual Chrissorr Excel Discussion (Misc queries) 5 May 11th 05 11:57 PM
Emailing a workbook with links GuinevereP Excel Worksheet Functions 2 April 7th 05 12:28 AM
Manually update links Emma Excel Worksheet Functions 0 February 22nd 05 01:23 PM


All times are GMT +1. The time now is 01:01 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©2004-2025 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"