If I have a table in Excel, populated via an external data connection, how can I refresh the data in such a way as to insert new rows for new data, but keep the old rows as well?
For example, this is my table:
Unfortunately the database that I'm working with only holds onto the current month's data, so if I refresh, I'll only get February 2011's data back. The end result I want is:
Are there any built-in Excel options that I'm missing (similar to "External Data Properties"->"Insert entire rows for new data, clear unused cells") or should I go the programmatic route and save the old data in a temp table, etc?
Since Excel external data is based on a query of the external source, Refresh will update to whatever is in that source. I think you will need to code a routine to append the external link data to another sheet
Related
We have an existing table on bigquery that gets updated via a scheduler that checks ftp server and upload the new added data into it.
The issue is that few days were dropped from the FTP and now I need to upload the data manually into the table.
Hopefully, I didn't want to create another table and upload the data into it and then make union between the two tables, I was looking for a solution that would insert the sheets to the main table right away
So, I want to create one Excel file each for every manager with only one single sheet and place it on OneDrive.
In order to get the data in one place, I am creating another excel file called combined.xlsx.
Now, I can export each workbook to a tab using Data -> Get Data -> From File -> From Workbook .
This is great so far. So, I can read data of 10 excelfiles on 10 sheets in combined.xlsx.
Now, I want to modify contents of one of the tabs and make sure it is reflected to the original file. How can I do this?
To elaborate on why it is not possible, you need to understand how Power Query deals with data:
You load your data into Power Query via the "Data" tab. The source can be anything Microsoft allows.
You then manipulate the data any which way in Power Query.
As a last step, you decide if and where to load the results. If you only want to create a connection to the query, you select "Close and Load to", which appears after you click on the arrow next to "Close and Load", and you pick that. Otherwise, the only other options are loading the query results to a table, PivotTable report, PivotChart.
Because the output sheets you have are connected to the query that produced them, any time you refresh the query, whatever manual changes you have made in the table that the query created originally will be wiped out and overwritten with the refreshed data.
If you were able to write back to the source here, you'd in effect
create a circular reference.
Check out this article about having Power Query output your data after manipulating it, maybe it helps.
I have a dataset that is imported from excel into access in a new table. I want to take this data and "add it" to the end of a larger data set as the main table is updated daily with relevant information. Not too experienced with VBA, however, this I cannot wrap my head around as I am normally experienced with Excel. Let me know if there is anything else I can do to help.
...from excel into access in a new table... If the data is already in your Access database, just make an INSER INTO query. No need of VBA
Add records to a table by using an append
query
And after you are done, make sure you clear that temp table where you import your data, with another query that deletes all records.
I have a database of data in excel that I want to copy and paste (link) to a new sheet where I can manipulate the data to a more readable form. However, the database does not have a set number of cells and updates regularly (the reason why it needs to be linked). The database changes size on a daily basis either shrinking or expanding. Is there a way to link the database even though it need to be a dynamic range?
I have a similar situation for one of my reports where I don't want to mess with the live data. All I do is create the link by going to the new sheet and typing something like =iferror(C:\USER\Database.xlsx\sheet1!A1," ") and fill across all the way and down all the way. The iferror checks for data and if there is no data inserts a space. That is how you can overcome the dynamic columns and with issues. The new spreadsheet will then be linked to the raw data set and you can manipulate it as needed.
I have a big workbook with a lot of data. In one sheet I have a table. This table is used for many Pivot tables used in other sheets, which are also used in other sheets.
The data for the table was copied manually regularly. I now have a external connection to import automatically the data but I'd like to avoid impacting other sheets.
How can I use my external connection without losing my table?
Thank you for your help
This might be a helpful workaround. I have successfully done this but it may require a bit of rework and not be the exact answer you expect. (I am using Excel 2010).
The reason for a workaround is I assume this is for a regular table (not a pivot table) as the source table. Unfortunately, I don't believe the switching connection options work for regular tables in Excel 2010.
Recreate a new table just below the other in the same worksheet by going to the Data tab > Get External Data > Existing Connections
Select your data connection (assuming it has been created) then select how you want to view the data. ie: Table
Place in your existing worksheet. Use your old table as a reference to reconnect all the connections to your other sheets, then delete the old table.
At this point, I find it easier to rebuild/copy those existing links to the new table with external data.
The good news: If your source table is a pivot table or pivot chart with an existing connection, you can easily change the table to have an external data connection (and switch between data connections).
For a pivot table with an existing connection you wish to change, select a cell in the table. In the ribbon above in 'PivotTable Tools' > Options tab > Change Data Source, you will be able to select this and reconnect to another source under 'Choose connection'.
For a pivot table with static data to introduce a new connection, I would suggest a similar workaround above.
I hope this works for you.
I'm going through this too. I've done some testing, and this is the approach I am going to take.
Save copy of file (just in case!)
Create a new sheet, and create link to your database, and have it entered as a table on this new sheet
Make sure your old table (manually entered) matches the same layout as the table with the data you are connecting to (same column order and column names)
For each pivot table, change the source to the new table (it should keep all of your setup the same if the columns are labeled the same)
Do a find and replace to change all formula referencing to the new table name.
Change any code in VBA that references the old tables
This should result in the least issues while making the changes. Just don't forget the first step!
If both connections/query are SQL or PostgreSQL, you can simply copy the query code from the new query to the old query. Then you do not even have to replace anything. "Edit" - "Advanced editor"