1

I have a Multi-select picklist in account object and I want to display the selected picklist values in contact object using a formula field. I came across many using multiple If conditions. In my scenario, I have 20+ values in Multi-select picklist, how am I supposed to do that

  • 1
    Use Case Function instead of Multiple If.. – Dhananjay Patil Nov 10 '17 at 9:42
2

To update a contact object formula field based on the values from the account object multi-select picklist . In contact formula field write down as

IF(INCLUDES(Account.Multi_select__c,"value"),"value;",null)&
IF(INCLUDES(Account.Multi_select__c,"value"),value;",null)&
IF(INCLUDES(Account.Multi_select__c,"value"),"value;",null)&
IF(INCLUDES(Account.Multi_select__c,"value"),"value;",null) 

and goes on. When my formula field has more characters this is the error I faced

The formula expression is invalid: Formula is too long (6,647 characters). Maximum length is 3,900 characters . In that case, try to use trigger its a good choice.

  trigger accountTrigger on Account(after insert,after update) {
    List<contact>contactlst = new List<contact>();
    List<contact> cnt = new List<contact>();
    map<string,string> mapOfAccntIds =  new map<string,string>();

    for(Account act:Trigger.new){
        mapOfAccntIds.put(act.id, act.Multi_select__c);
    }

    contactlst = [select id, Multi_Select_Text__c, name, AccountId from 
                    contact where AccountId IN: mapOfAccntIds.keySet()];

    for(contact c :contactlst ){
            c.Multi_Select_Text__c= mapOfAccntIds.get(c.accountId);
            cnt.add(c);      
    }
  }  
    if(cnt != null & cnt.Size()> 0)
    upsert cnt;
}
1

you could try something like this:

> IF(INCLUDES( Multi_Picklist_1__c , "A"), "A", NULL)  + BR() + 
> IF(INCLUDES( Multi_Picklist_1__c , "B"), "B", NULL)  + BR() + 
> IF(INCLUDES( Multi_Picklist_1__c , "C"), "C", NULL)
1

As stated in the doc...

Multi-select picklist fields can only be used in these functions:
- INCLUDES
- ISBLANK
- ISNULL

So... if you want to stick to a formula... you are stuck with the IF-INCLUDES for each option.

You could alternative consider making a very simple trigger on before insert and before update on your parent object that writes the String with all the values into a String field, and put a formula linked to it on the child object.

  • 1
    took your advice and wrote trigger :) – SFDC Nov 13 '17 at 11:09

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.