Looks like an interesting problem. One of the things that would be helpful is better understanding where you’re running into problems with your solution. Is it a) calculation of the roles, given the dimension selections or b) displaying the selected concatenations in the matrix?
If the latter, I think the CONCATENATEX/UNICHAR( 10 ) combo may solve your problem. This is one of my favorite tricks, since while it technically returns a scalar, the result looks like it’s returning a table. Here are some prior solutions I’ve posted using this approach:
If the former, I be glad to work on this, but it’s more than I can do in my head as a thought experiment, and will need an anonymized PBIX file and a clear mockup of the end result you are trying to achieve.