Have you tried committing the record on Voltage modify. Sometimes the calc will not show the correct result if the entry is not committed.
Confirm the text in your value list is exactly what is in the Case.
Not sure what's wrong but the Case function is ok. I put this in a calc field and it works as expected:
Voltage = "120/240v"; "1 Phase";
Voltage = "120/208v"; "3 Phase";
Voltage = "277/480v"; "3 Phase";
Did you check for a typo in your "Voltage" value list?
I would set a script trigger OnObjectSave on Voltage instead of using a calculation field for Phase.
Also, you can simplify your calculation like so:
If ( Voltage = "120/240v"; "1 Phase"; "3 Phase" )
I know some people don't like to use the If statement, so you could also do this:
Case ( Voltage = "120/240v"; "1 Phase"; "3 Phase" )
One thing to check would be making sure the both fields are "Text" or calculations which return "Text".
Great suggestion on the simplification. For those who don't like If(), in my mind it's easier to read If() rather than Case(), because I'm not looking for multiple conditions.
Not sure why you would recommending doing the action in the GUI via triggers. That is almost never ideal, especially when a simple calculation can ensure the logic is always enforced.
For example, if you then have to put the "Phase" field on another screen, you have to always remember to put the script trigger on the field. More steps which open yourself up to creating bugs.