+ Reply to Thread
Results 1 to 2 of 2

Array Lookup Formula Help Needed

  1. #1
    Registered User
    Join Date
    11-06-2012
    Location
    Norfolk, VA
    MS-Off Ver
    Excel 2010
    Posts
    9

    Array Lookup Formula Help Needed

    In the Promised Column in Sheet 1 the array formula needed should start giving the value when the ordered column is no longer giving answers. It is currently doing this, but within the formula in the SMALL function I need it to recognize when the ordered column has stopped giving a numbered response and in that first cell have ROW(1:1), for example K13 should essentially be giving:

    {=IF(I11="-",IF(ISERROR(INDEX('Future SO''s'!$B:$F,SMALL(IF('Future SO''s'!$B:$B=$D$5,ROW('Future SO''s'!$B:$B)),ROW(1:1)),5)),"",INDEX('Future SO''s'!$B:$F,SMALL(IF('Future SO''s'!$B:$B=$D$5,ROW('Future SO''s'!$B:$B)),ROW(1:1)),5)),"-")}

    Instead of ROW(5:5). I need this because when it starts searching in Row(5:5) instead of Row(1:1) it skips over some of the data it is searching for in ROW's 1-4.

    Any help on this will be greatly appreciated, I've seen to have come to a sudden halt when trying to figure this out. Thanks!
    Attached Files Attached Files

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

    Re: Array Lookup Formula Help Needed

    Though a belated response to your post I hope the above may still be of some help - if not to you then to anyone else who may have a similar requirement and stumble across this...

    Whenever using Array / SUMPRODUCT formulae it's advisable to avoid using double evaluation - eg (ISERROR(test),"x",test).

    Moreover, given use of XL2010 avoid using Arrays with large ranges as these are iterative calcs and very expensive (pre XL2007 you could not use entire column references for example)

    Given all of the above I would propose you

    a) add some dynamic, non-volatile named range constructs to minimise calc range
    b) utilise IFERROR function to avoid need for double evaluation

    Regards point a)

    Create Named Ranges as follows

    Formula: copy to clipboard
    Please Login or Register  to view this content.


    b) with the above in place you can then modify your Arrays per below

    Formula: copy to clipboard
    Please Login or Register  to view this content.


    the above are still not overly efficient formulae, however, they will be significantly faster than those used in the previously attached file - and also account for your requirements of course.

    To put above in context - using your sample file the original formulae for Ordered would take say 10 seconds on a dual core 4GB machine whereas the revised will take at most a 2/10 of that time.

+ Reply to Thread

Thread Information

Users Browsing this Thread

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

Tags for this Thread

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