If you’ve ever built a Power Apps form connected to SharePoint, you’ve probably run into this situation: you want one choice field to automatically update based on what someone picks in another field. Maybe the “Priority” dropdown should flip to “High” whenever the “Request Type” is “Urgent.” Or your “Approval Status” field should change the moment a manager picks a department.
Let me walk you through exactly how to do it in multiple ways, with practical examples you can copy and use right away.
Power Apps Set Choice Field Value Based On Another Field
A Choice field in SharePoint is a field that stores a value from a predefined list — like “Pending,” “Approved,” or “Rejected.” In Power Apps, these show up as dropdowns or combo boxes. Setting one of these fields automatically based on another field’s value is called dependent field logic or conditional defaulting.
There are three main ways to do this in Power Apps:
- Default property — sets the value when the form loads or a field changes
- OnChange property — triggers logic when a user picks something
- Patch function — writes a value directly to the SharePoint list
Let me cover each one with real examples.
Method 1: Use Power Apps Default Property (The Easiest Way)
This is the cleanest approach if you just want a choice field to pre-fill based on what another dropdown shows.
Scenario: You have a SharePoint list with two choice fields — RequestType (Ask / Offer) and ApprovalRequired (Yes / No). If someone picks “Offer” in RequestType, you want ApprovalRequired to automatically default to “No.”
Here’s what you do:
- Open your Power Apps form and click on the ApprovalRequired data card.
- Unlock the data card (click the lock icon or go to Advanced > unlock).
- Click the DataCardValue control inside that card (usually a Dropdown or ComboBox).
- Go to its Default property and enter this formula:
If(
DataCardValue_RequestType.Selected.Value = "Offer",
[{Value: "No"}],
[Parent.Default]
)
That’s it. When the user picks “Offer” in the first dropdown, the second one automatically shows “No.” If they pick anything else, it falls back to the existing value (Parent.Default).

Why [{Value: "No"}] instead of just "No"?
Because SharePoint choice fields are not plain text — they’re records with a Value property. If you pass just a string, Power Apps won’t know what to do with it. You have to wrap it as {Value: "your choice"}.
Method 2: Use a Power Apps Variable with OnChange (More Flexible)
Sometimes the Default property alone isn’t enough — especially if the Power Apps form can be in both New and Edit mode, or if you want finer control. In that case, use a variable triggered by the OnChange property of the first dropdown.
Scenario: Same setup — RequestType and ApprovalRequired. But this time, you want it to work reliably even when users switch their selection back and forth.
Step 1: Click on the RequestType DataCardValue (the dropdown) and go to its OnChange property. Enter:
If(
Self.Selected.Value = "Offer",
Set(varApprovalRequired, {Value: "No"}),
Set(varApprovalRequired, {Value: "Yes"})
)

Step 2: Now, go to the ApprovalRequired DataCardValue and set its DefaultSelectedItems property to:
varApprovalRequired

Now, whenever a user changes the RequestType dropdown, the variable updates instantly, and the second dropdown follows along.

A few things to keep in mind:
- Make sure
varApprovalRequiredis initialized somewhere (like the form’sOnVisibleor the App’sOnStart) so it has a value when the form first loads. - If you’re in Edit mode and want to preserve the existing record’s value on load, set the variable to the existing record’s choice value using
LookUp.
Method 3: Use Power Apps Switch Function for Multiple Conditions
What if you have more than two conditions? Nesting multiple If() statements gets messy fast. Use Switch() instead — it’s cleaner and easier to read.
Scenario: You have a Department field (HR / IT / Finance / Legal) and a PriorityLevel field (Low / Medium / High / Critical). Each department maps to a default priority.
Set the Default property of the PriorityLevel DataCardValue to:
Switch(
DataCardValue_Department.Selected.Value,
"HR", {Value: "Low"},
"IT", {Value: "High"},
"Finance", {Value: "Medium"},
"Legal", {Value: "Critical"},
Parent.Default
)
The last line (Parent.Default) acts as the fallback — if the department doesn’t match any of the listed values, it just keeps whatever value was already there.
This is especially handy in edit forms where you don’t want to overwrite an existing value if no condition matches.

Method 4: Use Power Apps Patch to Write Directly to SharePoint
Sometimes you don’t want to rely on form controls at all. Maybe you have a Power Apps button — like an “Approve” button — that should flip a choice field value when clicked. For this, Patch is the right tool.
Scenario: You have a SharePoint list called Leave Requests Status choice field (Pending / Approved / Rejected). You want a button that sets the status to “Approved” for the currently selected item.
Set the OnSelect property of the Approve button to:
Patch(
'Leave Requests',
LookUp('Leave Requests', ID = Gallery1.Selected.ID),
{
Status: {Value: "Approved"}
}
)
Notice again — choice fields need the {Value: "..."} syntax in Patch too. If you try writing Status: "Approved", Power Apps will throw an error.
What if the choice value comes from another dropdown?
If instead of a hardcoded value you want to use what someone picked in a dropdown called Dropdown_Status, write it like this:
Patch(
'Leave Requests',
LookUp('Leave Requests', ID = Gallery1.Selected.ID),
{
Status: Dropdown_Status.Selected
}
)
When the source is a dropdown, you can pass .Selected directly — no need to wrap it manually since the dropdown’s Selected property is already a record.
Method 5: Handle Multi-Select Choice Fields in Power Apps
If your SharePoint choice field allows multiple selections, things are slightly different. You’ll need to pass a table of records instead of a single record.
Scenario: A Tags field in SharePoint allows multiple choices. You want to auto-set it to “Urgent” and “Escalated” when a condition is met.
Patch(
'Support Tickets',
LookUp('Support Tickets', ID = Gallery1.Selected.ID),
{
Tags: [
{Value: "Urgent"},
{Value: "Escalated"}
]
}
)
For a dynamic multi-select based on a ComboBox control named ComboBox_Tags:
Patch(
'Support Tickets',
LookUp('Support Tickets', ID = Gallery1.Selected.ID),
{
Tags: ComboBox_Tags.SelectedItems
}
)
The ComboBox’s SelectedItems property already returns a table of records, so it works perfectly with multi-select choice fields.
Quick Recap: Which Formula to Use
| Situation | Best Approach |
|---|---|
| Pre-fill a dropdown when the form opens | Default property with If() or Switch() |
| React dynamically when a user changes a field | OnChange + variable + DefaultSelectedItems |
| Many conditions to check | Switch() inside Default |
| Button sets a choice field value | Patch() with {Value: "..."} |
| Dropdown drives another choice field | Patch() using .Selected |
| Multi-select choice field | Patch() with a table [{Value:""}, {Value:""}] |
Common Mistakes to Avoid
- Passing a plain string instead of a record — Always use
{Value: "YourChoice"}for choice fields, not just"YourChoice". - Forgetting to unlock the data card — You can’t edit the Default or DefaultSelectedItems of a locked card.
- Using Default instead of DefaultSelectedItems for ComboBoxes — Combo boxes use
DefaultSelectedItems, notDefault. Mixing them up is a very common headache. - Not initializing your variable — If you’re using a variable for the default, initialize it in
App.OnStartorScreen.OnVisibleOtherwise, the form loads with a blank choice. - Edit mode overwriting existing data — Always add a check like
If(FormName.Mode = FormMode.New, {Value: "Auto value"}, Parent.Default)so you don’t accidentally overwrite existing records when someone opens an item to edit it.
Once you get the hang of the {Value: "..."} pattern and know when to use Default vs. OnChange vs. Patch, setting choice fields conditionally becomes second nature. Start with Method 1 for simple cases, and reach for Method 3 or 4 when things get more complex.
Also, you may like:
- Power Apps Rating Control
- Get the Last Item in a SharePoint List Using Power Apps
- Save Power Apps Combobox Multiple Values to SharePoint List
- Validate Power Apps Combo Box Control
- Power Apps Date Picker Control

Preeti Sahu is an expert in Power Apps and has over six years of experience working with SharePoint Online and the Power Platform. She is the co-author of Microsoft Power Platform: A Deep Dive book. As a Power Platform developer, she has worked on developing various tools using Power Apps and Power Automate. She also makes Microsoft 365 videos and shares them on YouTube.