Your parentheses are wrong in several places. Proper indentation can make these errors more clear: IF( CONTAINS( "Re-Admit...", LastName // <-- remove TEXT(...) call if this is a text field ), // <-- missing closing parenthesis added 1, // <-- if your return type is Number, don't wrap the return value in quotes IF( CONTAINS( "Re-Admit 2...", LastName // <-- remove TEXT(...) call if this is a text field ), // <-- missing closing parenthesis added 2, // <-- extra closing parenthesis removed // ^^^ if your return type is Number, don't wrap the return value in quotes IF( CONTAINS( "Re-Admit 3...", LastName // <-- remove TEXT(...) call if this is a text field ), // <-- missing closing parenthesis added 3, // <-- extra closing parenthesis removed // ^^^ if your return type is Number, don't wrap the return value in quotes 0 // <-- if your return type is Number, your fallback value should be 0 or null ) // <-- close third IF formula ) // <-- close second IF formula (added) ) // <-- close first IF formula (added) I believe the first `CONTAINS` check will actually catch all the values from the subsequent checks, so you should also reverse the order, checking the `"1"` case last.