+ Reply to Thread
Results 1 to 4 of 4

Alternative To INDIRECT?

  1. #1
    Valued Forum Contributor
    Join Date
    09-23-2005
    Location
    Bristol, UK
    MS-Off Ver
    2007
    Posts
    664

    Alternative To INDIRECT?

    Hi all,

    A while ago, I posted up a thread regarding a formula that could pull through data by referencing a sheet name in a cell - and you good people solved the problem by recommending I use the INDIRECT function.

    Initially the document was pretty small and only had a few instances on the INDIRECT. However, over the weeks the document has grown and it is now running very slowly. Can anyone suggest an alternative to the INDIRECT function as a number of people in the office have very slow machines and the documents is becoming more of a hinderance than a help.

    Having done some research I've found out that INDIRECT is 'volative' as it continually calculates every cell and hence the slow down in speed.

    The formula is basically:

    Code:

    INDIRECT(A93&"!B4"))

    ...although I am running a few IF(ISERROR type precursors to keep everything looking clean.

    The long and short - can anyone suggest an alternative formula that isn't so volatile?

    TIA,

    SamuelT

  2. #2
    Forum Expert shg's Avatar
    Join Date
    06-20-2007
    Location
    The Great State of Texas
    MS-Off Ver
    2003, 2010
    Posts
    40,678
    Maybe you could used defined names -- hard to say without knowing more about why you're doing what you're doing.

    If you're using Excel 2007, you can use the IFERROR function to avoid multiple evaluations. If not, there's a simple UDF that does the same thing. If you have nested ISERROR functions, there's a UDF to avoid those multiple evaluations as well.
    Entia non sunt multiplicanda sine necessitate

  3. #3
    Valued Forum Contributor
    Join Date
    09-23-2005
    Location
    Bristol, UK
    MS-Off Ver
    2007
    Posts
    664
    Thanks for the response shg.

    To give you a quick overview of what I'm doing: I have a number of worksheets (continually growing, hence the problem!) that display a specific project with a number of dates and information. I then have an Overview page that shows all the projects on one page. Each worksheet's name is the project name - e.g. 30033_070. On the overview tab, I am using the INDIRECT function to look at the project number (in column A), and then pull through the information with the aforementioned formula.

    Hence:

    =INDIRECT(A93&"!B4"))

    ...would translate as:

    =30033_70!B4

    Hope that makes things a little clearere.

    SamuelT

  4. #4
    Forum Expert shg's Avatar
    Join Date
    06-20-2007
    Location
    The Great State of Texas
    MS-Off Ver
    2003, 2010
    Posts
    40,678
    There are various ways to do this.

    Create name mySheet Refers to: =Sheet2!$1:$65536

    Then =INDEX(mySheet, 1, 2) refers to Sheet2!B1, and is non-volatile.

    Change the definition of mySheet, and all the references change to the new sheet.

    Can you post a worst-case ISERROR example?

+ Reply to Thread

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts

Search Engine Friendly URLs by vBSEO 3.6.0 RC 1