How to create a 'dynamic' formula?

B

Bill

Can anyone please help with this function?

I have a large spreadsheet file with numerous worksheets.
Each sheet represents one month of the year and is named Jan05, Feb05, Mar05
etc.

In the "Summary" sheet I want to automatically reference a range in the
other sheets.

For example:

In the Summary sheet column A, I have the sheet names:
Jan05
Feb05
Mar05
etc.

In column B, (let's use B5 as an example) I want a formula that reads
something like:
=B4 + Apr05!C7

This seems simple enough, but how can I write a formula that 'automatically'
enters the sheet name (i.e. "Apr05") in the formula?
The row containing the data for Apr05 is only created when that month comes
along, in order to keep the file size as small as possible at any time.

Thanks,

Coober
 
B

Bill

I've tried using INDIRECT, but cannot find the correct syntax to make the
formula work properly.

If possible, could you please be a little more specific?

Thanks
 
B

Bob Phillips

=B4 + INDIRECT(A4&"!C7")


--
HTH

Bob Phillips

(remove nothere from email address if mailing direct)
 
B

Bill

Thanks, that works well! However, I also need to SUM a range which would
include 2 INDIRECT references:

In this case, I would need to have the two references inside a SUM function.

I tried this:
=SUM(INDIRECT(A2&".B2"):INDIRECT(A4&".B2"))
where A2 contains Jan06 & A4 contains Mar06
and a few variations, but only get an error.

The idea here is to sum the values in Jan06!B2:Mar06!B2

Is this possible?

Thanks
 
B

Bob Phillips

=INDIRECT(A2&"!B2")+INDIRECT(A4&"!B2")


--
HTH

Bob Phillips

(remove nothere from email address if mailing direct)
 
B

Bill

Surely this simply adds 2 cells.

What I need to do is to sum the range i.e. B2 on each of the following
sheets:
Jan06
Feb06
Mar06

I want to create a range that includes B2 for every sheet between the two
indirect references. However, as this often contains dozens of references, I
don't want to simply use "+" between each.
 
B

Bob Phillips

Sorry, Saturday blues.

You can't do it quite as you want, you will need to list the sheets in
A2:A13, and just setup the formula for those you want, like so

=SUMPRODUCT(N(INDIRECT("'"&A2:A4&"'!B2")))

which will do Jan, Feb and Mar

--
HTH

Bob Phillips

(remove nothere from email address if mailing direct)
 
B

Bob Phillips

If you change the sheet names, to say 0601, 0602, 0603, etc, you could do it
with

=SUMPRODUCT(N(INDIRECT("'"&TEXT(ROW(INDIRECT(H2&":"&H4)),"0000")&"'!B2")))

--
HTH

Bob Phillips

(remove nothere from email address if mailing direct)
 
B

Bob Phillips

That should of course be

=SUMPRODUCT(N(INDIRECT("'"&TEXT(ROW(INDIRECT(A2&":"&A4)),"0000")&"'!B2")))

and in this case, you would not need all sheet names, just the start and end
names.

--
HTH

Bob Phillips

(remove nothere from email address if mailing direct)
 
R

Ragdyer

And of course, to kick this horse to death, you could name your ranges.

Say A1 = Jan06 is named "one"
And A1:A2 is "two"
And A1:A3 is "three"
.... etc.

Then you could use:

=SUMPRODUCT(N(INDIRECT("'"&one&"'!B2")))
=SUMPRODUCT(N(INDIRECT("'"&two&"'!B2")))
=SUMPRODUCT(N(INDIRECT("'"&three&"'!B2")))
.... etc.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top