Appologies @RosalieMacartney - apparently I wasn’t fully awake when sending the earlier message.
However, I have found a work-around for you if it’s acceptable (and yes, it’s still a matrix table)
using the sample you sent me, here is what I have done
Step 1 - build a measure to return your row headers:
Header Measure =
IF( ISINSCOPE( 'Table'[Product] ),
UNICHAR(127) & SELECTEDVALUE( 'Table'[Product] ),
SELECTEDVALUE( 'Table'[Category] ))
note: the UNICHAR portion is just to add an indent to your Product lines
Step 2 - add this measure as the first value in your matrix
Step 3 - add the condition to the Header Measure value (because as a value it can accept conditional format)
Step 4 - turn off row wrapping on the row headers, and drag that column to be as thin as possible
Step 5 - rename the Category column (in the Matrix visual only) to something small like . or - so your users can overlook it
Result:
eDNA Solution - PBIX Rosalie (3-matrix).pbix (21.6 KB)