I would do it using iterations. With iterations you can make it work with any number of groups and columns.
See below reworked example. It uses the “Iterate table” action which sends a table to the iterated subproject. The subproject receives the table using the “Input” action. When you open the subproject the result of “Input” is empty, so you need to copy the source data (e.g. by right-clicking the “Import from Excel action” and choosing “Send to Clipboard”) and paste it into the “Input” manually to create a dataset to work with.
Alternatively, passing the table into the subproject could be done by exporting into a dataset file (“Export to dataset”), then using the regular “Iterate” action and “Import from Dataset” in the subproject.
MultiCross.morph (4.6 KB)
select-columns.morph (4.7 KB)
Source.xlsx (10.3 KB)