Forum Discussion
Combining files and updating matching rows
- 6 years ago
Hi ctaylor ,
We can use the following steps to meet your requirement, if your excel has same data construction:
1. keep the content and "data modified" column and remove other
2. expand and combine the content as usual
3. group by the number column and make other as all rows.
4. create a custom column:
Table.Max([Data],{"Data Modified"})5. remove the data column and expand the New Rows Column
6. result as following:
All queries are here (just a sample, did not include the combine file step)
let Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMlTSUTKFYiMDIwNdU11DBUMDK2MDKwMDpVidaCUjoIwZFGNXYQyUAWETvCrSoKqgKoxQVZhAZfG7A2RGBnYzYgE=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [Number = _t, Location = _t, #"Updated by" = _t, #"Data Modified" = _t]), #"Changed Type" = Table.TransformColumnTypes(Source,{{"Number", Int64.Type}, {"Location", type text}, {"Updated by", type text}, {"Data Modified", type datetime}}), #"Grouped Rows" = Table.Group(#"Changed Type", {"Number"}, {{"Data", each _, type table [Number=number, Location=text, Updated by=text, Data Modified=datetime]}}), #"Added Custom" = Table.AddColumn(#"Grouped Rows", "Newest Rows", each Table.Max([Data],{"Data Modified"})), #"Removed Columns" = Table.RemoveColumns(#"Added Custom",{"Data"}), #"Expanded Newest Rows" = Table.ExpandRecordColumn(#"Removed Columns", "Newest Rows", {"Location", "Updated by", "Data Modified"}) in #"Expanded Newest Rows"
By the way, PBIX file as attached.
Best regards,
No
I am starting with a folder and a bulk data file of 3 years worth of data. Again, the information is from a helpdesk so each incident number should be 1 record. I will be getting a weekly file that will be dropped into a folder, transformed and loaded into a single table in PBI. Because it needs to be 1 incident number and 1 record, there will be cases where the previously loaded file will contain "open" incidents that in the next sequential file will contain updates to that record along with brand new incident information.
So, if the incident number is a new number then a record is inserted. If the incident number is a duplicate, the most recent information should be kept and the older record discarded. This process should iterate through all files in a folder sequentially.
Thanks
- ctaylor6 years ago
Helper III
I tried to apply that logic ot my model and I think it works on a small level but against a much larget set of data this does some interesting things. First it takes a really long time to generate even a preview, like +5 minutes. I imagine that this is only going to get worse as more files are added each week. It also inflates the filesize by over 200x. The file is only 3 MB but as its trying to extrapolate the data here is what i see.
(I've taken screenshots 3 times now the filesize just keeps growing)
I'm not really sure whats happening there.
- camargos886 years ago
Community Champion
ctaylor ,
Try it without the preview, just tap on close & apply and check how long it takes.
Are you getting those files locally or from network/internet ?
- ctaylor6 years ago
Helper III
The files are local currently but will be moved to Sharepoint once i get this figured out.
Btw the filesize its loaded is now 1.33 GB and still going.
If I try to close and apply it ends up crashing out PowerBI.
This does actually work though.
The if statement works as it should but whatever is happening to the data size as it's running this comparison is not going to be feasible.