Skip to main content

How to Get the Options of a SharePoint Choice Column in Power Apps with Choices

· 4 min read
Jagdish Kumawat
Founder @ Dewiride

A SharePoint Choice column already knows its options. Choices gives them to your app as a table with one column, Value. Use it as a combo box's Items, and the app lists exactly the options defined in SharePoint, with nothing typed twice.

Syntax​

Syntax
Choices(ColumnReference [, TextFilter])
  • ColumnReference is the column, written directly on the data source, such as RoleCompetencies.Level. Microsoft's reference says it can't go through a function, a variable or a control.
  • TextFilter is optional and returns only the choices that start with that text.

Microsoft's Choices function reference describes it for lookup columns, which it says work with SharePoint and Dataverse. On the SharePoint Choice column below, it returned the column's four options. The same reference notes that Choices can't be delegated, which doesn't matter for a short list of options.

Prerequisites​

  • A SharePoint list with a Choice column, added to the app as a data source. The example is the Level column of RoleCompetencies in the Career Development Plan app, with the options Beginner, Intermediate, Advanced and Expert (Part 2).

Step 1: Give the Options a Name​

Several controls may need the same options, so name them once in App.Formulas (How to Use Named Formulas in Power Apps):

App → Formulas (added)
LevelOptions = Choices(RoleCompetencies.Level);

The expanded formula bar of App.Formulas ending with ResponseMaxLength, CommentMaxLength, the new line LevelOptions = Choices(RoleCompetencies.Level); and CompetencyMaxLength = 25;

Step 2: Check What It Returns​

Use the name in a property, such as a combo box's Items, and select it in the formula bar. The strip below shows Data type: Table. Selecting the arrow next to the name opens the result:

The formula bar with LevelOptions selected in a combo box's Items, and the result view below it showing Data type: Table and a Value column with Beginner, Intermediate, Advanced and Expert

A table with one column, Value, and one row per option, in the column's order.

Step 3: Use It​

As a combo box's options (How to Add a Combo Box in Power Apps):

PropertyValue
ItemsLevelOptions
ItemDisplayTextThisItem.Value

To save the chosen option back to the column, Patch it as a record with Value (How to Write to a SharePoint Choice Column with Patch):

Patch (part)
Level: {Value: cmbLevelCS.Selected.Value}

Why Not Type the Options in the App?​

["Beginner", "Intermediate", "Advanced", "Expert"] works until someone renames or adds a level in SharePoint. Then the app's list and the column disagree, and someone has to remember to update the app. With Choices, the column is the only place the options are defined.

Common Mistakes​

MistakeWhat happensDo this instead
Choices(locCompetency.Level)Not allowed: the reference must be directChoices(RoleCompetencies.Level)
Showing ThisItem in a combo boxThe options don't show their textThisItem.Value
Typing the options into the appThe app and SharePoint drift apartRead them with Choices

Troubleshooting​

SymptomLikely causeFix
The combo box shows sample itemsItems still has the sample dataSet Items to the named formula
The options show no textItemDisplayText reads a column the table doesn't haveThisItem.Value
Saving the choice failsThe value was saved as textPatch {Value: ...}

FAQ​

Can I sort or filter the options?​

Yes. Choices returns a table, so Filter, Sort and the other table functions work on it. The optional second argument keeps only the options that start with a given text.

Does Choices work with Dataverse?​

Yes. Microsoft's reference uses a Dataverse lookup column as its main example.

Conclusion​

Choices(List.Column) turns a Choice column's options into a table with a Value column. Name it once in App.Formulas, use it as a combo box's Items, and SharePoint stays the one place where the options live.

Additional Resources​

Stay Updated

Subscribe to our newsletter for the latest tutorials, tech insights, and developer news.

By subscribing, you agree to our privacy policy. Unsubscribe at any time.