Both functions exist because Salesforce picklists aren’t strings — they’re stored as references to picklist value definitions, and multi-select picklists store multiple values in one field. Plain = comparison doesn’t work the way you’d expect, so the platform gives you two specialised functions.
The short answer
| Function | Works on | Returns |
|---|---|---|
ISPICKVAL(field, "value") | Single-select picklist (and picklist on single-record references) | TRUE if the picklist’s current value equals the given API name |
INCLUDES(multiselect_field, "value") | Multi-select picklist | TRUE if the multi-select contains the given value |
Why two functions?
A single-select picklist holds one value at a time, but it’s not a plain string at the storage layer. Stage = "Closed Won" works in SOQL but ISPICKVAL(Stage, "Closed Won") is the formula-language idiom.
A multi-select picklist stores values as a semicolon-separated string ("Sales;Marketing;Support"). You can’t say Departments = "Sales" because the field never equals just "Sales". INCLUDES() parses the semicolons and returns TRUE if any token matches.
Examples
// Single-select
IF(ISPICKVAL(Lead.Status, "Working - Contacted"), "Active", "Inactive")
// Multi-select
IF(INCLUDES(Account.Industries__c, "Healthcare"), "Regulated", "Standard")
// Combine
IF(
AND(
ISPICKVAL(Stage, "Negotiation"),
INCLUDES(Tags__c, "Strategic")
),
"High-touch",
"Standard"
)
Common gotchas
- Use the API name, not the label.
ISPICKVAL(Stage, "Closed Won")only works if"Closed Won"is the API value. Translations and renames don’t change the API value, so your formula is safe across language packs. TEXT(picklist)is a different beast — it converts the picklist to its string label and lets you compare with=. Most style guides preferISPICKVALbecause it’s locale-safe.INCLUDES()cannot be combined withTEXT()— multi-select picklists don’t supportTEXT()at all.
What interviewers want to hear
- One sentence: “
ISPICKVALfor single-select,INCLUDESfor multi-select.” - A note that both compare against the API value, not the label
- Bonus: a one-line warning that plain
=against a picklist often seems to work in casual tests but breaks under translation workbench
Verified against: Salesforce Help — Formula Functions: ISPICKVAL and INCLUDES. Last reviewed 2026-05-17 for Spring ‘26 release.