Yes, Patrick,
...you're right, it is a narrow solution, based on the premise that the data was as illustrated (name is always 2 characters and the WHERE clause is always going to use a list of names to find) and the need for the "IN list" was the ONLY use for the macro variables. Since I don't totally understand the need for a macro program in this situation, I took the requirements to be very narrow in scope. If there were other requirements, I would have NOT used my approach at all, I would have designed it differently, I think.
And ... I would probably not have used a macro PROGRAM at all, if this were my task to do. In fact, I agree with you that I would have tried first for a solution that didn't involve macro coding at all. I suspect that there's a bigger picture behind the original question and one reason I can think of for wanting a macro variable for the IN list is that eventually, the list will probably come from some automated process or dataset, in which case, I think some fairly straightforward table lookup techniques, without SAS macro programming, would probably take care of the getting the right observations extracted. But, in the absence of a bigger picture or context for the question, I tried to point out what I considered to be the biggest drawback of the approach in the OP question.
cynthia