Power Query Refresh Changing Format of Column in Table - excel

I have a list of dates pulling into an Excel table via Power Query. I've then added columns to that table in Excel (i.e. not in Power Query) that pull in values via SUMIFS. I format all of those columns as currency, but when I refresh data via the Power Query, one of those columns keeps re-formatting itself to short date.
The formula in the column is nothing unique, it's just two SUMIFS pulling in data from another table if it matches the date found in the Power Query column. The Sum range referenced in the formula is formatted as currency, so it's not that.
A bit stumped I'm afraid, as I've never seen this before! Any suggestions much appreciated.

Related

How do I get Excel to preserve data types from power query when loading to a table?

I've used Power Query to pull data and build a table. I've set all of the data types within Power Query, but when I load to excel the table switches all data types to "general". The formatting still looks the same but actual data types have changed. Makes it a pain to build pivot tables since all of the numerical values default to 'count' when adding to a pivot.
There seems to be some confusion between data types and formatting.
Data types in Power Query define the type of data that the cell stores, i.e. Decimal number, currency, whole number, date, time, etc.
The Excel worksheet cell property for "General" is a format, not a data type. A cell formatted with "General" will show dates as dates, text as text, decimal numbers as decimal numbers, etc.
A pivot will default to count only when the underlying data type is text, not General.
If you need different formatting in the Pivot Table that you are building from the data, then you can change the formatting for each pivot table column. This does NOT affect the underlying data type.
Edit: PowerPivot will also default the aggregation to "count" instead of "sum" for numeric data type columns, if any cell in the column contains text, blanks or errors. In that case, you either need to clean up your source data, or manually change the PowerPivot aggregation from count to sum.
Edit II: If you're not using the Data Model, then by definition you're not using PowerPivot, because PowerPivot only works with data in the Data Model.
Yes, you can load the queries right into the worksheet, if you are happy with the resulting spreadsheet bulk and lack of Power Pivot functionality for DAX aggregation and table relationships.
Yes, you can build regular pivot tables from the query data in those worksheets, and the default aggregation for a numeric column is SUM(), even if the column contains blank cells (which you could easy enough test yourself, if you just took the trouble and two minutes to create a table with three rows of data, load it in to PQ, load it back into the worksheet, create a pivot table).
You can't do it that way, which is actually a feature not a bug, IMHO.
To format an entire column from a query result, in Excel,
Right-click in a cell of that column, and choose Select - Table Column Data
Format away as normal.
The nice thing about this is that you can have numbers in your query formatted as dates in your worksheet, etc. Also, there are no good ways to display commas in Power Query, but that won't stop you from getting things to look how you want them in Excel.

Excel Dynamic Array Spill Area - can it go along a row or just down a column?

The point of this exercise is to try to make this analysis quicker/easier to update. I had it pretty dialed in using a data tab and a pivot table, copying and pasting values/formulas as needed to update. I am trying to improve on that by using Excel's new Dynamic Arrays.
My table is setup with four employee detail columns (Location Name, Location Number, Employee Name, Employee Number), and several (many) columns for dates worked. My issue is the dates worked.
I am using UNIQUE and FILTER to get a list of flagged employees - works as I intended/hoped; lookup formulas to find the location name and number data for each employee from the data table - works as I intended/hoped; and I have been copying/pasting the dates from the pivot table column headers into my "counting"/analysis table header.
What I would like to do is use the UNIQUE formula to get the dates worked - BUT, I want the spill area to go along the row so the dates are column headers. Okay, I probably could have made that a shorter ask, but I hope explaining a little of what I'm trying to do helps. I want the dates to automatically update when I paste new payroll/hours worked data into the data table, the same way the employee data updates.
The key is to TRANSPOSE the UNIQUE formula, not the data:
=TRANSPOSE(UNIQUE(A1:A9))
I cannot find anything about having the spill area go along a row instead of down a column. My workaround for this was to create a column of unique dates next to my data table. Since the data is in a table, the unique dates will update automatically when the table is updated. I used the Offset formula to pull the dates into my column headers from the column of Unique dates next to my data table. I will say, while this setup is easier than updating via the pivot table, it is a formula heavy workbook now.
For the data headers I used : "=OFFSET('Data Table Tab'!$U1,Column()-5,0)". The "rows to offset" portion of the formula is "Column()-5". My first date header is in column 5, so as it is copied to the right this will increment the number of rows to offset from the first date.
At this point I will just need to copy the formulas over to the right to update my analysis table.
I would be surprised if someone else out there just starting to work with the new Dynamic Array formulas in Excel doesn't wonder about the same thing. If you stumble across this question and have a better solution, please feel free to share it with me.

Excel: transpose rows to columns and merge

I would like to present some data in Excel in a table. I have a sheet with three columns: date, time_spent and user_id. Every row is a data record. I want a table with a column for every date and every value with time spent below the date.
Using the transpose function under paste special I get this:
However I would like only one column per unique date, so the amount of columns decrease like this:
Does someone know how to do this?\
I have more than 10000 rows, so manually is too much effort...
Using Pivot Tables as Tim Biegeleisen suggested I cannot get what I want either, I'm not an expierenced user of Pivot Tables so probably I'm doing something wrong:
Excel file as shown in above picture
Here is one way of using a Pivot Table as suggested by Tim above in the comments, but you must use it on your original, non-transposed data: (and note which parameters go to which areas.
A disadvantage of the Pivot table is that the column headers are text strings and not dates. If your version of Excel is 2010+, you can use Power Pivot or Get and Transform to do a better job:
Open the Query Editor, change the format of the Date column, and Pivot the column:
Then Save the results:
Advanced filter dates to unique values in a new column
Copy and transpose them to make your column titles
Insert a new column B with the formula =TEXT(A2,"yyyyddmmm")&COUNTIF($A$2:A2,A2) and fill down
Below your new column headers put in the formula =IFERROR(VLOOKUP(TEXT(H$1,"yyyyddmmm")&ROW()-1,$B$2:$C$8,2,FALSE),"") and fill down and across. You will need to fill it down to cover the maximum number of instances of each date.
Adding a sumif to this table and your initial table would be a good way to check you got everything.

Excel - Pivot Tables: Display Dates Not in Source Data

I am importing a report that has a strict template from a sales monitoring site and I need to create a pivot table to reflect the data. The report generates data on daily sales for the month. The issue: I want a pivot table to reflect the imported data, but display 0's for the dates that are in the future.
For example, my data is being imported and has data from 3/1/16 to 3/21/16 (today's date). I want a pivot table generated from this data to display the full month of March, with 0's for the dates after today. Is this possible?
As far as I know, pivot tables need a data source to read from. So if you want the rest of month to show up with 0's, you will need to create dummy data for it. So fill out the data source with the rest of the month and 0's in all the columns. Then it will show up in your pivot table (as long as those cells are part of the pivot table's data source).
Without seeing the full layout you have in mind, it's difficult to be precise with an answer. Based upon what I can gather from your original post, I'd recommend inserting a column into your source data, let's call that column B.
Let's say your source data dates are in column A. Let's assume you have a header row in row 1 and column A is formatted as Date.
Insert a formula into B such that:
=IF($A2>NOW(), 0, $A2)
This will give you a column that either returns zero for future dates or the source data date for dates in the past/present.
Update your pivot to reflect the new column B instead of Column A. The challenge you will have is that Excel will attempt to present 0 as a date (since the rest of the column is a date), showing 01/00/1900 instead of zero.

Preparing Excel Pivot Table

-
I have a tabular data with values as in picture. I created a pivot table in excel 2007 .How can I get count value of each up/Down for date specified. I tried to by making one column row and other as values but it would not work.
The result would be:
A better solution is to use a countif function on a second tab. something like
=COUNTIF(Sheet1!A:A,"UP")
and
=COUNTIF(Sheet1!A:A,"DOWN")
and copy it across the range of dates.
If you can format your data differently to look like this
Then the pivot table becomes easy withthe following settings

Resources