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
Power Platform Call June 2022 768x460.png

Power Platform Community Call

Join us for the next call on August 17, 2022 at 8am PDT.

Power Platform Conf 2022 768x460.jpg

Join us for Microsoft Power Platform Conference

The first Microsoft-sponsored Power Platform Conference is coming in September. 100+ speakers, 150+ sessions, and what's new and next for Power Platform.

Users online (3,454)