Question XLOOKUP finding the next match row if blank

New Contributor

Hi, Question:

I have a data set which using XLOOKUP returns an email address for a customer number.


ON the email data set, there are multiple emails for each customer number.


How can I return the next email address using XLOOKUP if there are blanks in this email set? 


Any clues?!

9 Replies
best response confirmed by aussieC (New Contributor)


That could be like this


that's brilliant - thank you!

@aussieC , you are welcome

@Sergei Baklan thank you so much.  I have learned something new with this, brilliant! 


Each of us learns something new on this resource, I'm not an exception. Anyway, glad to know it helped you, thanks for sharing.


A couple of thoughts.  An alternative to searching for concatenated conditions is to simply strike out the customers that do not have declared email from consideration.  If there isn't an entry with an email, you could always relent and use the 'if not found' parameter to repeat the search to return such data that may exist.

= XLOOKUP( @selected, IF(email<>"", customer), email:phone )
= XLOOKUP( @selected, IF(email<>"", customer), email:phone,
  XLOOKUP( @selected, customer, email:phone ) )


Thanks @Peter Bartholomew - very helpful! Cheers

@Sergei Baklan 


Thanks Sergei this has worked great for me also!


On the xlookup what does the &1 mean also &-- In the formula?






Rich, glad to help.

Here (C2:C7<>"") returns an array with TRUE or FALSE. Double dash converts them to 1 or 0 accordingly, thus --(C2:C7<>"") returns an array with 1 for non-empty cells and 0 for empty ones.

By & we concatenate B2:B7 with this array (for example ="a" & "b" returns "ab"). Resulting array will be {"f11", "f2", "f21", "f3",...}. 

=D3&1 returns text "f21". Finally we try to find this text in above array and return related value from C2:C7.