I have formatted tabled following loading them from power query however after the data is refreshed, some of the formatting changes. How can I prevent power query from changing any formatting whilst still updating the values.
As far as I know, there is no way to do it. You can remove table colored formatting only. Save results on the other sheet and link to the values by formulas: vlookup or index/match. Or you can save sheet results as csv and link to them via macro etc.
Related
I have a changing power query which size changes based on the amount of PDF's from a folder. I have functions set up on a separate sheet tab to pull data from a range of cells from the power query tab. The main problem I have is if I load only a few of these pdf's my references will get deleted since the table range is getting removed. I have been trying to find work arounds to this, any help would be appreciated.
I tried to do a Pivot table of this data I need but I am trying to match certain criteria like an invoice and specific words to get a value. This did not work for my situation.
Example of Power Query
this is the data I am pulling that will turn into REF! if I take a pdf out and the rows shrink.
Saw this was previously asked here on SO and had no solution and I can't find a solution through Google either.
I have a workbook with a tab called "Data" containing a table which is updated via a power query and another tab called "Calcs" with formulas referencing the cells in the table from "Data". When I refresh the table, it pulls data via the power query, but when it's done, the formula references change.
For example, before the refresh, I'll have formulas like this in the "Calcs" tab:
=COUNTIFS('Data'!$A$2:$A$26886,$A1060,'Data'!$K$2:$K$26886,'BY CAT'!$B1060)
After the refresh, the references for column A only change to
=COUNTIFS('Data'!$A$10242:$A$26886,$A1060,'Data'!$K$2:$K$26886,'BY CAT'!$B1060)
And it results ina #VALUE! error message.
How can I prevent Excel from creating this reference shift?
You might be able to get around this by using full column references:
=COUNTIFS('Data'!$A:$A,$A1060,'Data'!$K:$K,'BY CAT'!$B1060)
Full column references aren't always a good idea, but it might just work in this case.
Edit:
Table column references would be ideal, TableName[ColumnName]. These should work given that you are reading from a power query generated table.
My question is for Excel 2013
I am trying to copy the contents of a dynamically generated table i.e. from a power query to another sheet where I create my own calculated columns and make a pivot table from that.
Here I have difficulties in copying the contents of the dynamically generated output of powerquery to another sheet.
I have tried the formula =Table_name[#column_name], This does link the column, but the destination table is not adjusted according to the original table rows. The destination table rows seem to be fixed and do not change as the source table rows change when I refresh the power query connection.
Is there a simple easy way to accomplish this ?
An Excel formula (by default) is executed every when you select a cell of the active sheet and click Send. All formulas of the sheet will be executed and values updated.
An excel formula update the value of the cell, is not itself the value!!!
To accomplish to your problem, and have an automatic update of your values you have to link the data, try to read this.
I have an excel file that I need to read into Power BI. Unfortunately I have no control over this file as its auto generated from another person.
Some of the cells in this file are just filled with colours and I want to be able to translate these colours when importing the data into Power BI.
For example if the colour is green in excel then show true in the corresponding power BI cell. At the moment it's just blank.
Does anyone know of a way to get cell "meta" data like colour from excel in Power BI?
Don't give up just yet...
I found an example that works in a roundabout way using Power Query in Excel. It will give you the meta data associated with each cell by its address (e.g. A1 is highlighted with color FFFFFF00). I relied on some Excel functions to associate the highlighted cell addresses with the cell values. Pulling the cell data with Power BI might take some additional work.
The technique is to use Power Query to open the Excel .xlsx file, which is basically a .zip file containing .xml documents. The color information for each cell can be extracted into a table. From there I was able to use INDIRECT() statements to read from the .xlsx workbook and extract the values from the colored cells. It worked quite well for me.
You can find a working example in the forum in the link below. The user defined DecompressFiles function in the sample uses the Binary.Decompress command to access the XML files within the .xlsx file.
https://www.excelguru.ca/forums/showthread.php?7047-Extract-Cell-Color-with-M&p=28875&viewfull=1#post28875
In my situation, I had a database export of about 7,000 rows and 50 columns into Excel. Working offline, users then went through Excel and made changes, highlighting every cell they had changed. Then they wanted me to update the database with only the highlighted cells. The background color used by each person varied but I didn't care what the color was, just that it was colored.
For each changed cell I was able to generate SQL statements to update the database and also insert into a transaction log table. The main database table was mostly flat but the few foreign key lookup values that were modified I had to update manually.
Column F uses the Indirect formula to pull data from the source workbook. Note that the source workbook must be open for the Indirect formula to read from it.
=INDIRECT("'[" & Import_Filename & "]" & Sheet_Name & "'!"&[#[SheetCellRef.2]])
Column G refines the data in Column F by putting quotes around strings or NULL if the cell is blank.
Column H grabs the column heading to know what field to update.
Column K grabs the Record ID value from the row specified in Column E.
I have had to run this process three different times for the users so my time invested paid off quickly. All I have to do is put their latest highlighted Excel file in the local folder and refresh the Power Query to generate new SQL statements.
Sorry I don't have a 'solution' posted right here. The process is still a little fragile and I'm trying to make a more robust example I can share. Stack Overflow doesn't seem to be set up for ongoing development of a solution. The point of this answer is to give hope to some of you who are desperate for a solution and won't take 'No' for an answer.
Sigh.
Color is not data. Unfortunately, many people color-code cells and then expect to be able to do things based on the color of the cell. But it's not that simple.
Although Excel now provides some ways to filter by cell color, it still cannot identify cell color with a worksheet formula.
Hence, you will need a VBA routine that evaluates all cells and records their colors in another table, which you will then need to push into your Power BI data model.
In the long run, it might be easier to talk to that other person who produces the color coded cells, and teach them a better way of doing things. Show them how to use conditional formatting based on cell values for color coding. The logic used for conditional formatting can also be applied to classify the data in Power BI.
From a data architecture point of view, the best solution is to address the problem at the source, instead of creating tools to handle bad data input.
Just sayin'.
I have an issue that I know is solve-able, I just cant find the setting or work out how to do it. I have a report where I have merged two columns. Lets say these are columns a and b. I want that when the report is exported to excel that you can click into column A, and it does not merge with column b. this would allow you to filter etc by the data under column a. The reason column a and b are merged in the first place is that the heading needs to go across two cells due to size.
I know this is do-able as it exists on a report i inherited, just i can't find the setting.
This is usually due to the misalignment of your header cells with your table cells. The Excel export tries to have everything formatted the same as in the report so it will sometimes use two columns for the table cells and merge them so it can align the columns to the header columns. This is problematic when it comes to manipulating, filtering and sorting the spreadsheet.
The best way to avoid this is to create an Excel renderer that doesn't render the header part of the report as described in my answer here.
However, if the cells need to be merged in your report deliberately then you aren't going to be able to do what you want to do using your current report as Excel will duplicate the formatting, including the merged cells.
Probably the only way to get something like what you are after is to create another report that is formatted the way you would like it to be in Excel. In the header of your original report put a text box (or an image with an Excel icon) with an Action on it to open the new, properly formatted, report in Excel, passing across parameters as appropriate. Now the user just need to click on the Action link in the original report to open the more user-friendly report in Excel.