<<<"Sorry, you are right. And no, there seems to be no way to make a named
function available to all sheets">>>
This is not really accurate.
You *can* universally assign a named formula to all WS's in a WB with a
single procedure.
In fact ... any additionally added sheets will also contain this "named
formula".
Say you want the formula,
=A1*B1
to work on each sheet of the WB, referencing the cells on the individual
sheets themselves.
From *any* sheet in the WB,
Create the named formula - from the Menu Bar:
<Insert> <Name> <Define>
In the "Names in Workbook" box, type something short, say:
calc
Then, change whatever's in the "Refers To" box to this:
=Indirect("a1)*Indirect("b1")
And hit <OK>
Now, on *any* sheet, you can enter the formula:
=calc
And it will multiply A1*B1 of the sheet you're in.
You can, of course, also create more complicated formulas using this
procedure:
=SUM(INDIRECT("A1:A5"))
=AVERAGE(INDIRECT("A1:A5"))
=VLOOKUP(INDIRECT("D1"),INDIRECT("B1:C10"),2,0)
--
HTH,
RD
=====================================================
Please keep all correspondence within the Group, so all may benefit!
=====================================================
Sorry, you are right. And no, there seems to be no way to make a named
function available to all sheets (same a named range, which always refers to
a range on a specific sheet).
If you want a formula reference working on any sheet you would have to
create a custom function. E.g. for the previous example you could put the
following function on a macro module:
Function myformula()
myformula = (ActiveCell.Offset(0, 1).Value + ActiveCell.Offset(0,
2).Value) / 2
End Function
In your spreadsheet you would enter =myformula()
However when using custom formulas the (slow) calculation speed is probably
more an issue than file size.
Another approach, quick and saving file size, would be a do the calculations
via a macro and not via formulas.
Sorry again for not being able to help you more.
Joerg