Seems like this should be fairly simple:
I have an option set field with 3 values that I'm trying to update
This is my formula where S1 and S2 are two source fields and 1, 2 & 3 are the possible target values.
IF(S1 = 'Y', "1", IF(ISEMPTY(S2), "3", "2" ))