cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Meneghino
Community Champion
Community Champion

Solved: union operator or function to append one table to another

Hi, does anyone know if it possible to create the union of two tables?  I.e. to be able to append TableB to TableA?

 

I know that you can use Collect (or ClearCollect) to do this, but this requires calling an action.  This is not what I am asking for.

 

Ideally I would like to be able to make then Items property of my gallery something like:

 

TableA+TableB

 

or

 

Table(TableA, TableB)

 

But netiher of these work.

 

Any ideas?

1 ACCEPTED SOLUTION

Accepted Solutions
Meneghino
Community Champion
Community Champion

Got it!  Here is how you do it:

 

Ungroup(Table({MyTables: TableA},{MyTables: TableB}), "MyTables")

I am beginning to think you can do anything with PowerApps

 

PS This will not work if either of the two tables has no rows, i.e. is an empty table.

View solution in original post

9 REPLIES 9
Meneghino
Community Champion
Community Champion

Got it!  Here is how you do it:

 

Ungroup(Table({MyTables: TableA},{MyTables: TableB}), "MyTables")

I am beginning to think you can do anything with PowerApps

 

PS This will not work if either of the two tables has no rows, i.e. is an empty table.

How could you handle this if you wanted no duplicate line items?  Provided there were completely duplicated rewords in either table?

Meneghino
Community Champion
Community Champion

I would just wrap a Group() function around the whole lot to eliminate duplicates

Thats a good suggestion.  I ended up doing it this way:

 

ClearCollect(
    MDL_All,
    List1,
    Filter(
        List2,
        Not(Id in List1.Id)))

Props to @CarlosFigueira

Anonymous
Not applicable

Hi @Meneghino and @martinav , 

 

I am trying to simulate a union of two sharepoint list to be used in one collection.   I tried both of the methods with the "Ungroup" and the ClearCollect with the filter based on no duplicate IDs.  

For this one what does the first "Table" represent? 

Ungroup(Table({MyTables: TableA},{MyTables: TableB}), "MyTables")

 

For this one is there a way to do a collection from two different list using an && ?  The two list that I have are the same but we're separating to accomadate for the row limitation in PowerApps.  

ClearCollect(
MDL_All,
List1,
Filter(
List2,
Not(Id in List1.Id)))

@Anonymous,

 

Please forgive me.  I'm not sure I fully understand what you are asking.  

 

I think you are saying that your ungroup function performs the same as the one I posted.  

 

Then your second statement.  using AND to combine them?  

 

The row limitation issue I have is in the my filters not being able to search the entire sharepoint list items. (<2000)   Getting them into the collection can be done in 2,000 item chunks.  The method I used was to get the first 2000, and the last 2000, and then doing the merge together, eliminating duplicates using the Not() command for List 2.  Then, I can do all of the filter statements I want in the collection without delegation issues.  

 

I'm not entirely sure this helps.  Please try to restate your question if you need too.

 

Regards,

Rod

Anonymous
Not applicable

Hi @martinav

 

I was able to resolve my issue.   We were using two separate SharePoint list to get around the 2000 limit and I needed a way to union the two list together into one collection.  I was able to do that using ClearCollect for the first list and then a Collect to append the records from my second list the collection.   I didn't know that "Table" was a function when I sent my initial quesiton.  

With the above solutions I was getting list of TableA visible but only Blank Cells for Items of TableB. I figured the reason was my tables had more than one column.

Therefore I used a bit of a work around:

First I made a collection (on the on visible property of the screen) which is:
ClearCollect(combined, {Comb:Distinct(TableA,DesiredColumnName)},{Comb:Distinct(TableB,DesiredColumnName)})

 

Then I used a Dropdown control to view the combined data by ungrouping the collection:

Set Item property of the Dropdown control to:

 

Ungroup(combined,"Comb")

cindyc
Frequent Visitor

Thank You rshafique!,

 

I was also able to get this to work based on what you did.  What I needed to do was combine the values in a column in a Sharepoint list with those in an excel based list of Lookup values that acted as the choices I wanted to show on a form dropdown. But ultimately what I really wanted to combine these 2 to display on the form, because I also have an "Other" option whereupon the user can enter a custom value, if none of the values in the list represent what they need. For example;

 

Excel Lookup List:

MANUFACTURERS

Manufacturer_1

Manufacturer_2

Manufacturer_3

Manufacturer_4

 

SP LIST COLUMN VALUES:

Device Manufacturers

Manufacturer_1

Manufacturer_2

Manufacturer_5 <-- entered as a custom value from the user

Manufacturer_6 <-- entered as a custom value from the user

 

Here is the combined list I wanted on the form dropdown, so I can show the base values from the lookup, and also any new custom values entered by the user, with no duplicate values:

 

FORM MANUFACTURER DROPDOWN:

Manufacturer_1

Manufacturer_2

Manufacturer_3

Manufacturer_4

Manufacturer_5 <-- entered as a custom value from the user

Manufacturer_6 <-- entered as a custom value from the user

 

And here is how I did that based on your example:

 

Entered in Screen1.OnVisible --> this is a collection of base lookup values from an excel spreadsheet "Table" called "MANUFACTURER_TABLE".

 

 

 

ClearCollect(collection_Manufacturer, MANUFACTURER_TABLE)

 

 

 

Entered in Screen1.OnVisible --> this is a collection of values from a Sharepoint List (SP_TRANSACTION_LIST) column called "Device Manufacturers" where the transactions are entered from a form. If users enter a custom value, these new values should show up in the drop-down.

 

 

 

ClearCollect(list_Manufacturers,
Ungroup(
Table(
{list_ManufacturersOptions: Choices(SP_TRANSACTION_LIST.Device_x0020_Manufacturers)},
{list_ManufacturersOptions: ["Other"]}
),
"list_ManufacturersOptions"
));

 

 

 

 

Entered in Screen1.OnVisible --> this is a collection combining the above collections and calling the new one "tables_Manufacturers" - "list_Manufacturers" and "collection_Manufacturer", not grouped or sorted, basically just appending one table to another.

 

 

 

ClearCollect(tables_Manufacturers, Ungroup(Table({all_Manufacturers: list_Manufacturers},{all_Manufacturers: collection_Manufacturer}), "all_Manufacturers"));

 

 

 

 

Entered in Screen1.OnVisible --> this is a new collection based on the above collection "tables_Manufacturers" but is now only showing Distinct values in the dropdown. Keep in mind here that the Column Name in my example within my Sharepoint list is actually "Device Manufacturer", but when I tried to enter that inside "Distinct", the powerapps screen editor gave an error when I tried it and tried Device_X0020_Manufacturer.  When I put in "Value" as below inside "Distinct", it worked. So be aware, when you put in the column value name like "Column Name" or COLUMN_NAME or Column_X0020_Name inside "Distinct", that actual column name may not work, especially one that has spaces in it, and you may need to put in "Value", or "Result" like below.

 

 

 

ClearCollect(dist_Manufacturers, Distinct(tables_Manufacturers, Value));

 

 

 

 

Thanks for the help, I search a bunched and could not find a solution that worked to combine to tables or collections together and not repeat rows, and this worked for me!

Helpful resources

Announcements
PA Virtual Workshop Carousel 768x460.png

Register for a Free Workshop

This training provides practical hands-on experience in creating Power Apps solutions in a full-day of instructor-led App creation workshop.

Microsoft Build 768x460.png

Microsoft Build is May 24-26. Have you registered yet?

Come together to explore latest innovations in code and application development—and gain insights from experts from around the world.

May UG Leader Call Carousel 768x460.png

What difference can a User Group make for you?

At the monthly call, connect with other leaders and find out how community makes your experience even better.

Top Solution Authors
Top Kudoed Authors
Users online (1,581)