How to Build Multi Select Cascading Combo Boxes in Power Apps (SharePoint & Dataverse)

1. Introduction

When building business applications in Power Apps, users often need to filter data through multiple related selections. Displaying every available option in a single dropdown can quickly become overwhelming, especially when working with large datasets. This is where cascading combo boxes become extremely useful.

A cascading combo box is a series of connected Combo Box controls where the selection in one control automatically filters the available options in the next. For example, selecting a Category displays only its related Subcategories, and choosing a Subcategory then displays only the relevant Products. This approach creates a cleaner interface, improves data accuracy, and provides a much better user experience.

In this tutorial, you’ll learn how to build both single-select and multi-select cascading combo boxes using SharePoint and Dataverse. You’ll also explore the differences between these data sources, understand delegation limitations, and learn which approach is best suited for different business scenarios.

2. Understanding Cascading Combo Boxes and the Data Structure

A cascading combo box works by creating a relationship between multiple Combo Box controls. Instead of showing every available option at once, each Combo Box displays only the data related to the previous selection. This makes forms easier to navigate and significantly reduces the chance of users selecting incorrect data.

The solution demonstrated in this tutorial follows a simple three-level hierarchy:

Category → Subcategory → Product

To achieve this, the application uses related data sources that store categories, subcategories, and products.

SharePoint Data Structure

The SharePoint implementation consists of two connected lists:

ListPurpose
Category ListStores categories and their corresponding subcategories. The Category column is configured as a Choice field, while the Title column stores the subcategory names.
Products ListStores product names and contains a Lookup column that references the Category List, linking every product to its corresponding subcategory.

Dataverse Data Structure

The Dataverse version follows the same relationship model using two tables:

  • Categories table containing Category choices and Subcategory records.
  • Products table containing product information with a lookup relationship to the Categories table.

Because the relationships remain the same, the overall cascading logic is identical regardless of whether you use SharePoint or Dataverse.

The tutorial also demonstrates four implementation scenarios:

  • Building cascading combo boxes using SharePoint Choice columns
  • Building cascading combo boxes using SharePoint Text columns
  • Creating multi-select cascading combo boxes with SharePoint
  • Creating multi-select cascading combo boxes with Dataverse

Understanding these data relationships is essential because every filtering formula depends on how the Category, Subcategory, and Product records are connected.

3. Building Single-Select Cascading Combo Boxes

The simplest implementation uses single-select Combo Box controls, where users can choose only one value at each level. As the user selects a category, the subcategory list is automatically filtered. Selecting a subcategory then filters the available products.

Step 1: Configure the Category Combo Box

If your SharePoint Category column is configured as a Choice field, populate the Category Combo Box using the Choices() function. This automatically retrieves every available category without manually creating a collection.

Once configured, users can select a single category that becomes the parent filter for the remaining Combo Boxes.

Step 2: Filter the Subcategory Combo Box

The Subcategory Combo Box uses the Filter() function to display only records that belong to the selected category.

Instead of displaying every subcategory stored in the list, Power Apps compares the selected category with the Category field in the SharePoint list and returns only the matching records. This creates the first level of cascading behavior.

Step 3: Filter the Product Combo Box

The final Combo Box displays products based on the selected subcategory.

Since the Products list stores a Lookup reference to the Category list, the filtering formula compares the lookup value with the selected subcategory. As a result, users only see products that belong to the chosen subcategory, creating a complete Category → Subcategory → Product filtering experience.

Working with Text Columns Instead of Choice Columns

If the Category field is stored as a Text column instead of a Choice column, the implementation changes slightly. Rather than using the Choices() function, Power Apps uses Distinct() to generate a unique list of category names.

Although this approach works well for smaller SharePoint lists, it’s important to understand that Distinct() is non-delegable in SharePoint. This means Power Apps only processes records within the configured data row limit (typically 500, with a maximum of 2,000). If your SharePoint list contains more records, some categories may not appear in the Combo Box.

Reset Dependent Combo Boxes

One important implementation detail is resetting child Combo Boxes whenever the parent selection changes.

For example, when a user changes the selected Category, the previously selected Subcategory and Product may no longer be valid. Using the Reset() function in the Category Combo Box’s OnChange property automatically clears the dependent Combo Boxes, ensuring users always work with accurate and up-to-date selections.

This simple addition greatly improves the user experience and prevents inconsistent data from being displayed.

 
 

4. Building Multi-Select Cascading Combo Boxes

While single-select combo boxes allow users to choose only one value at a time, many business applications require selecting multiple categories or subcategories simultaneously. Power Apps supports this by enabling the AllowMultipleSelection property on Combo Box controls, allowing users to filter data across multiple values.

Multi-Select with SharePoint

For SharePoint data sources, the Category Combo Box can still use the Choices() function to display available categories. However, because users can select multiple items, the Combo Box returns a SelectedItems collection instead of a single selected value.

The Subcategory Combo Box filters records by checking whether the category exists within the selected items using the in operator. The Product Combo Box follows the same approach by displaying products that belong to any of the selected subcategories.

Although this solution works well for small SharePoint lists, it’s important to understand its limitation. The in operator is not delegable for SharePoint, meaning Power Apps only evaluates records within the configured data row limit. For larger datasets, this can result in incomplete or inaccurate filtering.

Multi-Select with Dataverse

Dataverse provides a much more scalable solution for multi-select cascading combo boxes because it supports delegation for the in operator.

The implementation is nearly identical to SharePoint, but filtering operations are performed directly on the server instead of within the app’s delegation limit. As a result, applications can work efficiently with much larger datasets without generating delegation warnings.

For organizations managing thousands of records, Dataverse is the recommended platform for implementing multi-select cascading combo boxes because it offers better performance, improved scalability, and more reliable filtering.

5. Best Practices and Common Challenges

Building cascading combo boxes is relatively straightforward, but following a few best practices can greatly improve your application’s performance, usability, and maintainability.

One of the most important practices is resetting dependent Combo Boxes whenever the parent selection changes. If a user changes the selected Category, the previously selected Subcategory or Product may no longer be valid. Using the Reset() function in the parent Combo Box’s OnChange property ensures users always see accurate data.

When working with lookup columns, make sure you’re filtering using the correct lookup field, such as Title or Value, depending on your data source. Incorrect lookup references are one of the most common reasons cascading filters fail.

If your SharePoint Category field is stored as a Text column, you’ll likely use the Distinct() function to display unique categories. However, remember that Distinct() is not delegable in SharePoint, making it suitable only for smaller datasets.

Similarly, the in operator used for multi-select filtering is also non-delegable in SharePoint. If your lists contain thousands of records, Power Apps may return incomplete results due to delegation limits.

For production applications that handle large amounts of data, Dataverse is generally the better choice. Its delegated filtering capabilities eliminate many of the limitations encountered with SharePoint and provide a more scalable solution for enterprise applications.

6. Conclusion

Multi-select cascading combo boxes are an excellent way to improve both usability and data accuracy in Power Apps. By filtering related records step by step, users can quickly find the information they need without scrolling through long lists of unrelated values.

Throughout this tutorial, you’ve learned how to build cascading combo boxes using both SharePoint and Dataverse, implement single-select and multi-select scenarios, understand how lookup relationships work, and recognize the delegation limitations associated with SharePoint.

While SharePoint provides a simple solution for small and medium-sized applications, Dataverse offers a more robust and scalable approach for enterprise environments where large datasets and delegated queries are essential.

By combining proper data relationships, cascading filters, and best practices such as resetting dependent controls and handling lookup fields correctly, you can build responsive, user-friendly Power Apps that deliver a smooth and efficient experience for your users.

Leave a Reply

you are successfully subscribed!

There was an error while trying to send your request. Please try again.

autopowerai.com will use the information you provide on this form to be in touch with you and to provide updates and marketing.