Forms, fields and formulas

How do I make a dropdown or lookup show options based on another field?

Source the dropdown from a dataset or dataform and filter it on the controlling field, or filter a lookup the same way.

How-to

Short answer: Keep the options in a dataset (or a dataform in an app). Source the dropdown or lookup from it and add a filter that compares a column with the controlling field.

Why it happens

  • A dropdown sourced from a static list can't filter. Dependent dropdowns need a dataset or dataform source.
  • A single lookup points at one dataset. It can't switch datasets based on a field.

How to fix it

To build a dependent dropdown:

  1. Keep the options in a dataset with a column for each level, for example Country, State and City.
  2. In the dependent dropdown, set the data source to Dataset and pick the column to show, for example State.
  3. Click Add filter and compare the dataset column with a form field, for example Country is equal to the Country field.
  4. Repeat for the next level, filtering City by both Country and State.

City dropdown filtered on the Country and State fields

To filter a lookup:

  1. Open the lookup field settings and click Add filter.
  2. Pick the Field, Operator, Type and Value, and set the value to the controlling form field. See filtering lookup field results.

To pull from different datasets based on a field, add one lookup per dataset and show each with a visibility rule.

To filter a user picker, add a filter on the user field. If only some cases need the filter, add two user fields, one filtered and one open, and show one at a time with visibility rules.

Important

Dependent behavior works on Dropdown and Radio button fields, not Multi-select or Checkbox. In apps, use dataforms as the source; load them by CSV import or the New item button.

Related answers