I've a multi-picklist field called SegmentA(A,B,C,D) on ObjectA. Also, another multi-picklist field called SegmentB(A,B,C,D) on ObjectB.
This is not unusual behavior from what I discovered when researching this. Depending on your use case, you may find the following of interest. One solution to the problem of copying them from one object to another was as follows below. It is simply a means of "copying" multi-select picklist values from one object to another as text:
if(ISPICKVAL( Opportunity__r.Project_State__c , "AK") , "AK",
if(ISPICKVAL( Opportunity__r.Project_State__c , "AL") , "AL",
if(ISPICKVAL( Opportunity__r.Project_State__c , "AR") , "AR",
if(ISPICKVAL( Opportunity__r.Project_State__c , "AZ") , "AZ",
if(ISPICKVAL( Opportunity__r.Project_State__c , "CA") , "CA",
I'm not able to compare both the values programatically. The order of
values given is same.
I found another "Formula Based" solution on success.salesforce.com I thought worth posting that was in response to the following:
"We need to create a formula field on a child object that displays all
of the selected values from a multi-select picklist on the parent
object."
IF ( INCLUDES ( parent.multipicklist__c , "Value 1" ), "Value 1; ",null ) &
IF ( INCLUDES ( parent.multipicklist__c , "Value 2" ), "Value 2; ",null ) &
IF ( INCLUDES ( parent.multipicklist__c , "Value 3" ), "Value 3; ",null ) &
IF ( INCLUDES ( parent.multipicklist__c , "Value 4" ), "Value 4; ",null ) &
IF ( INCLUDES ( parent.multipicklist__c , "Value 5" ), "Value 5; ",null )
Alternatively, if you want multiple lines displayed, you can do something like this:
IF(INCLUDES( parent.multipicklist__c , "Value 1"), "Value 1", NULL) + BR() +
IF(INCLUDES( parent.multipicklist__c , "Value 2"), "Value 2", NULL) + BR() +
IF(INCLUDES( parent.multipicklist__c , "Value 3"), "Value 3", NULL) + BR() +
IF(INCLUDES( parent.multipicklist__c , "Value 4"), "Value 4", NULL) + BR() +
IF(INCLUDES( parent.multipicklist__c , "Value 5"), "Value 5", NULL)
or, (which may appear a bit cleaner)...
IF(INCLUDES( parent.multipicklist__c , "Value 1"), "Value 1" + BR(), NULL)
IF(INCLUDES( parent.multipicklist__c , "Value 2"), "Value 2" + BR(), NULL)
IF(INCLUDES( parent.multipicklist__c , "Value 3"), "Value 3" + BR(), NULL)
IF(INCLUDES( parent.multipicklist__c , "Value 4"), "Value 4" + BR(), NULL)
IF(INCLUDES( parent.multipicklist__c , "Value 5"), "Value 5", NULL)