Forum Discussion

Morbeus's avatar
Morbeus
Copper Contributor
Sep 25, 2023

Excel Lookup That Skips Cells

Hi all,

Been struggling with this problem that seems like it should be simple, but I suspect I don't know enough to figure out what combination of things would work.

 

To summarise the setup (simplified) I have two sheets, Sheet 1 has some data in Column A, and I want to put the lookup formula in Column B.

Sheet 2 has data in Column C and D, I want the formula to look up the value of the Sheet 1 A cell in Column D, then return the corresponding value in Column C. However, if the value is 0, I want the formula to look "up" to find the next non-0 cell and return that value.

 

So, the first bit is relatively simple, I can just do =XLOOKUP(A1, Sheet2!D:D, Sheet2!,C:C) and that takes care of looking up to the left. What I'm having trouble with is how to then go up to the next non-zero cell.

 

I've got a workaround for the moment where I use =IF(XLOOKUP(A2, Sheet2!D:D, Sheet2!,C:C)=0,B1,XLOOKUP(A2, Sheet2!D:D, Sheet2!,C:C))

Basically, if the lookup isn't 0 use that value, if it is then use the value in the cell above this one. This isn't ideal as it needs manual verification that it's correct, and relies on there being something in the cell above that makes sense.

 

So, I'm fairly sure I need to modify this IF() statement to do something more interesting when the lookup returns 0, but I've not been able to figure out what. If anyone has any thoughts, I'd be extremely grateful.

 

 

 

8 Replies

  • SergeiBaklan's avatar
    SergeiBaklan
    Diamond Contributor

    Morbeus 

    As variant

    =LET(f, FILTER(Sheet2!C:C, (Sheet2!D:D=A1) ), IFERROR( @FILTER( f, f<>0 ), "no such") )
    • Morbeus's avatar
      Morbeus
      Copper Contributor
      SergeiBaklan
      I'm afraid I can only half-follow what that formula is doing. Could you explain the logic?

      Many thanks.
      • SergeiBaklan's avatar
        SergeiBaklan
        Diamond Contributor

        Morbeus 

        We filter from column C in Sheet2 all values for which value in column D is equal to A1. Result is filtered on all non-zero values. From these non-zero values we take first found by applying "@". Finally, if nothing was found, IFERROR gives a message.

Resources