At 14:42 12/11/2012 +0000, Paul Stear wrote:
On Thursday 08 Nov 2012 14:19:22 Brian Barker wrote:
At 11:45 08/11/2012 +0000, Paul Stear wrote:
I have the same spreadsheet set I use each year. The new spreadsheet for 2013 will need to reference fields in the 2012 spreadsheet. For the past few years I have manually changed the Readings-2012 in every instance (well over 100).

I would like to be able to construct the spreadsheets with a method to change the current year, eg 2013 minus 1 to give 2012 inserted so that the ref in the 2013 spreadsheet reads;-
='file:///home/fred/Generation Readings-2012.ods'#$Jan.A68

Is this possible?

Yes. You need to concatenate the required year value with the strings required before and after it. Suppose that you have the current year - 2013 in your example - in A1 of your new spreadsheet. You need to concatenate "'file:///home/fred/Generation Readings-" with A1-1 and ".ods'#$Jan.A68". Note that the two single quotes are part of the string you are creating and the four double quotes delimit the two text strings, so the first string has a single quote immediately following its opening double quote. You can carry out this concatenation using the & operator:
="'file:///home/fred/Generation Readings-"&A1-1&".ods'#$Jan.A68"
(The numerical expression A1-1 is converted to a string value automatically.)

You might expect this to work, but it doesn't. The formula above results in a text string which is interpreted literally and not as a cell reference to the other spreadsheet file. But the trick you need is available in the INDIRECT() function, which provides the necessary conversion. So the formula which works is
=INDIRECT("'file:///home/fred/Generation Readings-"&A1-1&".ods'#$Jan.A68")

Hi Brian,
Thank you so much, your solution works a treat.

My spreadsheet consists of 15 pages each year, so my next question is:- would it be possible to put the new year on page 1 named "cover" in cell A2 and then change the "&A1-1&" to reference this on for each instance on every page?

Yes. You refer to a cell on another sheet as sheet.cell. So you would just need to use ...&cover.A2-1&... .

Brian Barker


--
For unsubscribe instructions e-mail to: users+h...@global.libreoffice.org
Problems? http://www.libreoffice.org/get-help/mailing-lists/how-to-unsubscribe/
Posting guidelines + more: http://wiki.documentfoundation.org/Netiquette
List archive: http://listarchives.libreoffice.org/global/users/
All messages sent to this list will be publicly archived and cannot be deleted

Reply via email to