tigeravatar- thank you very much for your help with this.

If I understand your code correctly, the macro goes row-by-row and compares each member cell to the lookupvalue string. If the cell matches then the relevant effective name is added to the string that will eventually be output.

You solved the problem of the same value appearing multiple times in one row by simply having the macro stop the row comparison as soon as it found a match and then start again at the next row.

Assuming that all that is true, the only thing I don’t understand is why you have to have the mid before the output. I see that without the mid the deliminator (i.e. “; “) is the first thing that is displayed, but I don’t know how “; “ came to be before everything else.

Finally, how could the UDF be modified so that if the lookupvalue is blank then the UDF just outputs “N/A”? Currently, if the lookupvalue is blank, it returns the names of all the rows which have a blank- which is every row. This would be useful in case the user deletes the lookupvalue (which they shouldn’t but I could envision it happening).

Again, thank you for the help with this.