+ Reply to Thread
Results 1 to 4 of 4

Excel 2007 : Looking for a non volatile replacement for OFFSET

  1. #1
    Registered User
    Join Date
    01-23-2009
    Location
    australia
    MS-Off Ver
    Excel 2007
    Posts
    50

    Looking for a non volatile replacement for OFFSET

    Hi

    I have a large spreadsheet but one that runs very efficiently. That was until I introduced a column of formulas that include the OFFSET function. Now the spreadsheet need over half a minute to recalculate itself every time i change a single value. I know it is the OFFSET function that is causing this as it is volatile. Does anybody have a replacement formula for the one below that achieves the same outcome without using OFFSET?

    =OFFSET($WP$5,MATCH(E5&F5&G5,INDEX($WL$5:$WL$1000&$WM$5:$WM$1000&$WN$5:WN$1000,0),0)-1,0,1,1)

    Any help would be greatly appreciated.

    Doug
    Last edited by boohah; 03-27-2009 at 09:47 PM.

  2. #2
    Forum Guru DonkeyOte's Avatar
    Join Date
    10-22-2008
    Location
    Northumberland, UK
    MS-Off Ver
    O365
    Posts
    21,531

    Re: Looking for a non volatile replacement for OFFSET

    Without seeing the formula in context it's hard to be precise, perhaps the following might work ?

    =LOOKUP(2,1/((WL5:WL1000=E5)*(WM5:WM1000=F5)*(WN5:WN1000=G5)),WP5:WP1000)

    the above assumes that the combination of E & F & G occurs only once ... if you have multiple records the above returns the value from WP associated with the last instance of the combination.

    I would like to add that you would be best served adding a concatenation of E/F&G and WL/WM & WN in 2 columns and reverting to a traditional INDEX/MATCH as this would most likely prove more efficient still.

  3. #3
    Registered User
    Join Date
    01-23-2009
    Location
    australia
    MS-Off Ver
    Excel 2007
    Posts
    50

    Re: Looking for a non volatile replacement for OFFSET

    Hi Donkey

    You were right, if you had seen the context you would have been set. By adding a few $ symbols into your formula I was able to get it to do exactly what I wanted.

    =LOOKUP(2,1/(($WL$5:$WL$2000=E5)*($WM$5:$WM$2000=F5)*($WN$5:$WN$2000=G5)),$WP$5:$WP$2000


    The spreadsheet still has a 1 to 2 second delay but a little bit of tidying up will sort that. Thank you very much for your help, I can stop tearing my hair out now :-)

    Doug
    Last edited by boohah; 03-27-2009 at 09:46 PM.

  4. #4
    Registered User
    Join Date
    01-23-2009
    Location
    australia
    MS-Off Ver
    Excel 2007
    Posts
    50

    Re: Looking for a non volatile replacement for OFFSET

    Hi Donkey

    I just tried your second solution and it is even better again, the entire spreadsheet has come to life, i have even implemented similar formulas in other areas of the spreadsheet.

    Thanks again for all your help, you are a dead set champion.

    Doug

+ 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