Data - How to find the common rows from 3 or more collections

When working with data, there is often a need to find common rows across multiple data sources or collections.

With two data sources, the process can be relatively straightforward. However, as the number of data sources increases, the complexity of the task also increases.

This post provides a strategy to address this challenge and demonstrates the process using three collections.

Example - Creating source collections

For this example, let's take the following 3 example collections - Employees, Customers, and Users.

Notice how the "Tim Leung" user appears in all 3 collections. This demonstration will build a formula to identify this user.

ClearCollect(
colEmployees,
{ Name: "Alice Johnson", Email: "[email protected]" },
{ Name: "Bob Smith", Email: "[email protected]" },
{ Name: "Tim Leung", Email: "[email protected]" },
{ Name: "Charlie Brown", Email: "[email protected]" }
);

ClearCollect(
colCustomers,
{ Name: "David Lee", Email: "[email protected]" },
{ Name: "Tim Leung", Email: "[email protected]" },
{ Name: "Eve Adams", Email: "[email protected]" },
{ Name: "Alice Johnson", Email: "[email protected]" }
);

ClearCollect(
colUsers,
{ Name: "Frank White", Email: "[email protected]" },
{ Name: "Grace Green", Email: "[email protected]" },
{ Name: "Tim Leung", Email: "[email protected]" },
{ Name: "Bob Smith", Email: "[email protected]" }
);

Formula to find matching records across 3 collections

To find records that appear in all three collections, we can use the following syntax:

Filter(
colEmployees,
!IsBlank(
LookUp(colCustomers, Name = colEmployees[@Name] && Email = colEmployees[@Email])
) &&
!IsBlank(
LookUp(colUsers, Name = colEmployees[@Name] && Email = colEmployees[@Email])
)
)

The formula takes one of the tables as a base (colEmployees).

It filters this collection and returns records where calling LookUp on the colCustomers and colUsers collections returns a non-blank value. The presence of a non-blank value means the value(s) must also exist in the colCustomers and colUsers collections.

The call to LookUp matches both the Name and Email values. We can modify this to include more or fewer columns.

To verify the result, the screenshot below illustrates how the formula returns the expected record from our source collections (the Tim Leung record).


Conclusion

By using the provided strategy and formula, we can efficiently identify common records across multiple data collections. This method simplifies the process, and we can extend the calls to !IsBlank/Lookup to support a greater number of data sources.

Related posts

Data - How to remove trailing comma all rows in a table
February 20, 2025
Data - How to show the distinct rows from 2 data sources or collections
February 26, 2024
Data - How to implement circular rotational date sorting
February 21, 2024
Bug - What to do when the data section of the Power Apps Maker portal doesn't work
June 18, 2023
Data - Combine columns from separate tables into a single table
October 13, 2022
Formula - Transposing/converting rows to columns- an almost impossible task?
September 23, 2021
Data - How to rename field names in a record
July 14, 2021
Data - How to hide duplicate rows in a gallery / show distinct multiple columns in a gallery
July 09, 2021
Data - Retrieving news/forum/blog articles with RSS
June 26, 2021
Data - How to sort by partial numbers in a text field
June 23, 2021
Data - How to return the last record from a table
June 19, 2021
Data - How to create bulk test/dummy records with random values
June 18, 2021
Data - 3 things you should know before using the MySQL or PostgreSQL connectors
May 11, 2021
Data - A walkthrough of how to migrate the data source of an app from Excel to Sharepoint
April 26, 2021
Data - How to enforce unique values (or prevent duplicate values) in one or more columns
April 19, 2021
Data - How much mobile data does Power Apps consume? What ways can we minimise this?
March 28, 2021
Data - How to save and retrieve Google calendar entries
March 14, 2021
Data - How to save and retrieve Google contacts
March 10, 2021
SQL - Caution! This is how users can hack shared SQL connections
January 23, 2021
SharePoint – 2 Mistakes to avoid when importing Excel data
January 10, 2021
SQL - Don't let this DateTime bug catch you out!
January 05, 2021
Settings - What's the purpose of the "Explicit Column Selection" Setting?
January 04, 2021
SQL Server for Beginners Part 3 - Installing On-Premises Gateway
January 24, 2019
SQL Server for Beginners Part 2 - Installing Management Studio
January 14, 2019
SQL Server for Beginners Part 1 - Installing SQL Server
January 04, 2019
Searching data–What you need to know about case sensitivity
December 27, 2018
Images - How to create images that can change depending on data
November 09, 2018
Excel - Reasons NOT to use Excel as a data source
September 25, 2018
SharePoint - What you need to know about Filtering Data
September 16, 2018
Formulas - Generating Row Numbers
April 05, 2018