Of course there is a way (call it better or easier -- you decide).
As Simon says, LOD to the rescue :-)
The denominator -- [Goal] -- should be aggregated
at a [Category] level, hence a FIXED LOD expression.
For the internal aggregation I choose MIN(),
but could be AVG() or MAX() -- doesn't matter.
Please find the attached.
Hope it could help.
TestTotalsWithPctToGoal_YF.twbx 120.5 KB