#PowerPlatformTip 103: 'Quick Setup Guide'
TL;DR: Need a dropdown fast? Don’t build a separate lookup table. Set the ComboBox
ItemstoChoices(DataSource.Column)on an existing Lookup or Choice column, and the values come straight from the column definition, for exampleChoices(Orders.Customer). SetDisplayFieldsto the column you want to show.
💡 Challenge
You need a dropdown or ComboBox populated quickly, under time pressure or as a temporary solution, without adding and maintaining another data source in the app.
✅ Solution
Point the control’s Items at an existing Lookup or Choice column with Choices(). For a lookup, Choices returns the records of the related table, so you don’t even need to add that table as a data source. For a Choice column, it returns the defined options.
🔧 How It’s Done
1. Prepare your data source
🔸 Use (or create) a Lookup column for relational data, for example Customer on an Orders list or table, or a Choice column for a simple picklist, for example Status.
2. Set Items
🔸 Add a ComboBox (or Dropdown) and set Items:
1
Choices(Orders.Customer)
🔸 The column reference must point directly at the data source: Orders.Customer works, a variable or Gallery1.Selected.Customer doesn’t. Display names and logical names both work, for example Choices(Accounts.'Primary Contact') or Choices(Accounts.primarycontactid) in Dataverse.
3. Set DisplayFields
🔸 SharePoint Choice and Lookup columns return records with Id and Value: set DisplayFields and SearchFields to ["Value"].
🔸 A Dataverse lookup returns all columns of the related table: show its primary name column, for example ["name"] for Accounts or ["fullname"] for Contacts.
4. Filter or sort the choices (optional)
🔸 Choices returns a table, so Filter and Sort work on it: Sort(Choices(Orders.Customer), Value) for SharePoint.
🔸 The second argument returns only choices that start with a text: Choices(Orders.Customer, "Con").
5. Save the selection
🔸 In a form, the card’s Update is DataCardValue1.Selected. With Patch: Patch(Orders, Defaults(Orders), { Customer: ComboBox1.Selected }).
🎉 Result
The dropdown is ready in minutes, shows exactly the values the column allows and writes back a valid lookup or choice value.
🌟 Key Advantages
🔸 Speed: one formula instead of an extra lookup table and data source.
🔸 Valid data: users can only pick values the column allows.
🔸 Less maintenance: new options added to the column appear in the app automatically.
⚠️ Good to Know
🔸 No delegation: Choices can’t be delegated. For a lookup to a large table, the ComboBox only sees the first rows up to the app’s data row limit (500 by default, maximum 2,000). In that case add the related table as a data source and use it directly, for example Filter(Customers, StartsWith(Name, Self.SearchText)).
🔸 Licensing: a canvas app that uses Dataverse needs Power Apps Premium (or per-app) licences for its users. SharePoint lookups and choices work with the standard connector.
🎥 Video Tutorial
🛠️ FAQ
1. Why does my ComboBox show empty rows?
DisplayFields points to a column that doesn’t exist in the Choices table. Use ["Value"] for SharePoint and the primary name column for Dataverse lookups.
2. Can this method be used with both SharePoint and Dataverse?
Yes. Lookup columns work with SharePoint and Dataverse, and so do Choice columns.
3. Are there any limitations when using the Choices() function?
It can’t be delegated, and the column reference must point directly to the data source. For large related tables use the table itself as Items.
🔗 Related Tips
🔸 Power Apps ComboBox DefaultSelectedItems - pre-select a value in the same Choices()-driven control instead of leaving it blank.
🔸 #PowerPlatformTip 41: ‘Standard Tables in Dataverse’ - know which built-in Dataverse tables already have the Lookup columns you need.
This tip is by Marcel Lehmann, Microsoft MVP (Business Applications) and founder of the Power Platform Academy – live Power Platform workshops, free or CHF 49. Join the workshop waitlist to get notified about new dates. For companies that want this implemented for them, see KMUpower – Power Platform consulting & automation for SMEs (DACH).