Formula functions to the rescue!
The documentation is a bit obtuse to navigate (Salesforce, y u no provide anchors so that when I click on a function I am taken to that function instead of the top of a page with an entire half of the functions?), but using your browser's search to find key terms (like multi-select picklist) generally helps narrow things down.
INCLUDES() function works on multiselect picklist fields, and returns
TRUE if the specified text literal is one of the selected values. The downside to this is that you can only test for one value at a time.
ISBLANK() function also works on multiselect picklists, which will be needed to short-circuit the rest of your validation rule (if
Status__c is blank, then you can ignore the rest of the rule).
Counting how many of the grade fields have been populated requires a bit of function composition. The first thing that comes to mind here is to use
IF() functions to calculate your value, along with
ISBLANK() to test if a field is populated...something like
IF(ISBLANK(Field_A__c), 0, 1) +
IF(ISBLANK(Field_B__c), 0, 1) +
IF(ISBLANK(Field_C__c), 0, 1) +
IF(ISBLANK(Field_D__c), 0, 1)
This expression starts with a 0 value (which conceptually represents how many fields are populated), and adds 0 if a field is blank, and adds 1 if the field is not blank. Pretty straightforward. This will directly evaluate to either
FALSE, and you can fairly easily plug that into logic for the rest of your validation rule (which expects a Boolean result) without the need to enclose it in another
<expression to test if multipicklist is empty here>,
<expression to count number of grades populated here>
Finally, as for validating that the grades add up to 100%, I'd actually suggest making that into its own validation rule. The reason I suggest that is that
- Adding this makes your validation rule more complex and thus harder to understand
- You only get to specify one error message per validation rule, and
X is filled but either you didn't populate at least 2 fields or the grades don't add up to 100%
Is not as clear as if the messages are separated
X is filled, you must populate at least 2 of A, B, C, D
Grades do not sum to 100%