OK, so I think it will be possible, but it will require some manual configuration:
I generated a random dataset with this structure:
The SoilValueClass is a classification of the SoilValues into 5 classes.
I used two field as Value fields (Soil and SoilValueClass):
I manually assigned the colors, since applying the ramp will assign blue to "igneous, 1" and red to the end "Soil, 5" which is not what you want. So I selected "igneous, 1", "metamorphic,1", etc up to "soil, 1" and assigned the blue color and for every "SoilValueClass" value a different color in the range of blue to red.
The Symbol Size was defined by the field SoilValues:
The legend is very, very, very long...