I'm not sure if this is possible - I've spent a good couple of hours reading a LOT about attributes, but not stumbled across anything like my specific situation, and yet it seems to me as if it should be quite simple.
What I have is:
Display Counter in several widths, at a different price per width
Several finishes (3 plain, 10+ woodgrain) where the plain are no extra and ANY woodgrain is 20% extra.
So
Width 1= 330
Width 2= 360
Width 3= 430
any plain finish=0 extra
any woodgrain=+ 20% of the price by width - so +66, +72 or +86 as appropriate.
Can I do this by attributes or do I need to create separate products for each width?
And if I can do it by attributes, is there a way to make the label show (+20%) rather than (+££)?
I've played around with price factor and only seem to be able to get it to operate on the lowest price.



