Also, I'm not entirely certain why you'd want it to give you all C names when one of them is selected. If you had a list of, say, 5,000 names, doing it this way would give you a few hundred names to pick from. With my other formula, you'd be able to just type in the first few letters and knock that down to only a handful of names. The only real benefit I can think of is if the user often accidentally clicks a name other than the intended one and has to select again. With a short list, like the one we're dealing with, I'll grant that it doesn't matter either way and it is kind of nice to see the whole list for each letter, but with a larger one, it might start to get unwieldy.

Here's an idea: what if there was a cell somewhere that had a number in it and that number went into the Left() formulas as the number of characters? There would have to be an error handler if the cell contained fewer than that number of characters (preferably a way to get it automatically to said number of characters), but this would serve as a precision guide. With a short list, it could be set to 1. With a very large list, it could be set to 3 or 4, so that the first several letters have to match, thus giving much the same effect, but keeping the list short in nearly all instances.