Power Apps Set Choice Field Value Based On Another Field [5 Various Methods]

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

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:

  1. Default property — sets the value when the form loads or a field changes
  2. OnChange property — triggers logic when a user picks something
  3. 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:

  1. Open your Power Apps form and click on the ApprovalRequired data card.
  2. Unlock the data card (click the lock icon or go to Advanced > unlock).
  3. Click the DataCardValue control inside that card (usually a Dropdown or ComboBox).
  4. 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).

powerapps set choice field value based on another field

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"})
)
powerapps dropdown not showing values from sharepoint list

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

varApprovalRequired
powerapps dropdown default value

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

powerapps defaultselecteditems dropdown

A few things to keep in mind:

  • Make sure varApprovalRequired is initialized somewhere (like the form’s OnVisible or the App’s OnStart) 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.

powerapps dependent combo box

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

SituationBest Approach
Pre-fill a dropdown when the form opensDefault property with If() or Switch()
React dynamically when a user changes a fieldOnChange + variable + DefaultSelectedItems
Many conditions to checkSwitch() inside Default
Button sets a choice field valuePatch() with {Value: "..."}
Dropdown drives another choice fieldPatch() using .Selected
Multi-select choice fieldPatch() 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, not Default. 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.OnStart or Screen.OnVisible Otherwise, 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:

>

Live Webinar: Quiz Application using SharePoint Framework (SPFx)

Join this free live session and learn how to build a Quiz application using SharePoint Framework (SPFx).

📅 2nd June 2026 – 10:00 AM EST | 7:30 PM IST

Build a High-Performance Project Management Site in SharePoint Online

User registration Power Apps canvas app

DOWNLOAD USER REGISTRATION POWER APPS CANVAS APP

Download a fully functional Power Apps Canvas App (with Power Automate): User Registration App

Power Platform Tutorial FREE PDF Download

FREE Power Platform Tutorial PDF

Download 135 Pages FREE PDF on Microsoft Power Platform Tutorial. Learn Now…