SOLVED

Question XLOOKUP finding the next match row if blank

Copper 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 (Copper Contributor)
Solution

@aussieC 

That could be like this

image.png

that's brilliant - thank you!

@aussieC , you are welcome

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

@jjaniga 

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

@aussieC 

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 )
or
= XLOOKUP( @selected, IF(email<>"", customer), email:phone,
  XLOOKUP( @selected, customer, email:phone ) )

image.png

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?

 

Cheers

 

Rich

@R_Dunbar 

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.

1 best response

Accepted Solutions
best response confirmed by aussieC (Copper Contributor)