Efficient method to put several items into value field - pivot

I need to create several pivot table once and week, and I wonder if there is any efficient method to drag several item into value field. (I tried to left click on the item I need, but it will automatically go to "row" field.)
And also, is there any efficient method to set up "value field setting"?
I want to summarize value field by "sum", but it will automaticall become "count". If i have 20 items in "value field", I need to click value field setting for 20 times...

Given that you have used the PowerPivot tag then I will assume that you are talking about a PowerPivot PivtotTable not a standard Pivot.
The first thing to do is explicitly create measures (called Calculated fields in 2013) for each calculation you wish to make - not only does this mean you can choose to sum not count but also that you can specify the format you want and once it has compiled, the measure will be added more quickly that just dragging the column into the box.
The easiest way to create a measure is to right click on the table and then in the dialogue box add a formula such as:
=SUM('mytable'[mycolumn])
In the same dialogue you can name the measure and choose the number format.
Once you have the measures you need, you can create a 'set' which is simply a collection of measures/dimensions. The easiest way to do this is create the Pivot you want then go to:
PivotTable Tools>Options>Fields, Items & Sets>Create Set based on....
From there you can name the set and make alterations. Then in future you will see that set in the field list and be able to add it to you pivots with a single click.
Jacob

Related

Excel - Find all items that share a common cell value

I am wanting to search this list:
The goal is to determine what all is inside Basket 1, determine which item of those costs the most, and return the color of that specific item. My brain is having a hard time determining the right path for this.
With a Pivot Table, you can resume data based on basket # and then filter by most valuable item, and get the color.
The set up for this Pivot Table is all fields into Rows Section, except Amount that will go into values.
NOTE: Even if my Excel language is different than yours, options I'm using should be in the same position. But anyways, besides set up from the image above, you need to apply a value filter (not label filter!), to field ID and make sure choose option TOP 10 and set it to show just TOP 1
If you just want the most expensive item, ignoring Basket #, just remove field Basket from your Pivot Table, and it will work.
Actually you could have 2 Pivot Tables, each one set up in a different way (all baskets, or each basket).

Default date aggregation for Excel

What is the default behavior of adding a date, time, or datetime into an Excel pivot row/column? I have seen it sometimes add it as the "raw value", sometimes it will add it as a Year > Query > Value, and other times (?) perhaps in between. For example:
When does Excel add it without aggregating it, and when does Excel aggregate it? Does it have to do with value cardinality, date range, or something else?
First, every entry in the column has to be a date/time or you won't be able to group them. In that case, obviously, the default would be not grouped.
Assuming everything is groupable, the default is no grouping. Each date will show individually.
The exception is if a pivot cache already exists. In that case it will group based on what the pivot cache says - the last way that field was grouped. This happens when you have more than one pivot table on the same data. The first pivot table creates the cache and all subsequent pivot tables use that existing cache.
In a new workbook (2010), I add a date field to the Row Labels and they are initially ungrouped by default.
I group them by month
Now I go back to the original data and make a new pivot table. I add the date field to the Column Labels.
Because it uses the same cache, it automatically has them grouped the same way. Finally, I go back to the source data and replace one of the dates with a string. If I create another pivot table, it will look like the others. But when I refresh it ungroups them because I have a non-date in there.
And if I try to Group now, it says "Cannot group that selection"
That's why it works the way it does - shared pivot cache. There are ways you can give each pivot table it's own cache but that uses more memory. However, if you want to group the same data differently, that's what you have to do.

Variance between the same objects in different columns

I've got a pivot table that contains Countries in Rows and few different types of revenue in columns, grouped by Scenarios. I've got 5 types of scenarios, and I need to show 2 of them at once for comparison.
It looks like this:
ScenarioX ScenarioY
Revenue1, Revenue2, Revenue1, Revenue2
Country1
Country2
The problem appears when I want to add a variance columns, that would calculate the difference between Revenue1(ScenarioX) and Revenue1(ScenarioY) etc.
I know how to use calculated fields, but this case is much harder, is it even possible?
I have tried to add a standard table right next to the pivot table, that takes the values directly from the pivot and calculates them. It works, but in this case i will need to hide and expand the table basic on the revenue type filter, which crashes the table.
ScenarioX ScenarioY Variance
Revenue1, Revenue2, Revenue1, Revenue2, Variance 1, Variance2
Country1 Rev1X-Rev1Y, Rev2X-Rev2Y
Country2 Rev1X-Rev1Y, Rev2X-Rev2Y
What I need exactly is a hint, how to add the calculated fields, or other methods (through vba maybe?) to make the table look like above?
Ok found the solution finally, posting here, maybe it will help someone:
Duplicate the field in the pivot table "VALUES" area
[optionally - change it's name to "Variance"]
Right click on the new field -> Value Field Setting -> Show Values As tab
In the Combo Box change the field to "Difference From"
In the Base Field in my case I had to select "Scenario", in Base Item - the scenario that
will be substracted from the main one.

SSAS Calculated member that knows if the user is using the report filter

I am trying to write a calculated member which acts differently depending on whether the user is filtering by that member or has it dragged down as rows or columns on their pivot table (using Excel).
The rules are:
1. If the user is using the date dimensin as a Report Filter in Excel, then the calculated member should get the maximum date out of all dates that they are filtered by.
2. If they have the date dimension as rows on the pivot table, then I need to apply ClosingPeriod and some other logic.
Please try this. The idea came from here.
Basically the dynamic named set represents what's in the report filters. And the EXISTING keyword trims the list of days down to the filter context of the current cell letting you detect say if one month is on rows. Compare counts and you can detect what the user did.
CREATE HIDDEN DYNAMIC SET CURRENTCUBE.SelectedDays as
[Date].[Date].[Date].Members;
CREATE MEMBER CURRENTCUBE.[Measures].[My Calc] as
CASE
WHEN SelectedDays.Count > {existing [Date].[Date].[Date].Members}.Count
THEN Tail({existing [Date].[Date].[Date].Members},1).Item(0).Item(0).Name
WHEN SelectedDays.Count < [Date].[Date].[Date].Members.Count
THEN Tail(SelectedDays,1).Item(0).Item(0).Name
END
Performance is going to not be good. And I suspect users will be confused with the results of your calc. If you want to describe the business scenario more I can maybe recommend a better approach.

Can I create a COUNTIF calculated column in SharePoint?

Is there a way to create a SharePoint calculated column that returns a count of the number of entries in a list? So If I have 3 customers in my list with the company "Starbucks" I'd like the field to return "3"
(Edited some wording for clarity per suggestion from dariom).
You may be able to get what you want with another list using a not-so-well-known variation of a lookup column.
Let's say you have a list called Companies with values in the title column like "Starbucks", "Peets", etc. Now you also have the Customers list you refer to, but the "Company" column is a lookup column pointing to the title column in the Companies list.
You can add a count very similar to what you described to your Companies list. Go to your Companies list, add a column of type "Lookup" referring to the Customers list and you'll notice that in the drop-down area where you define the lookup if you point back to the Customers list, you'll have a new option called "Count Related". This is here automatically because it recognizes that the Customers list has a lookup pointing back to this one. Select that Count Related option and now your Companies list will have a column counting how many customers are associated with that company.
No coding, Javascript hacks, or anything. Just hidden SharePoint auto-magic.
No, I don't think there's a way to do this using the out-of-the-box calculated column.
Some other ways you could accomplish this are:
Create a view for your list that with a group by on the company field and include the total count. This is easiest, but might not be exactly what you're looking for.
Create a custom column type that executes a CAML query to find items that you're interested in. There is a learning curve if you've not done it before and if the list that you're adding this custom column to has lots of rows, you'll be executing a query for each row which is inefficient - it'll be OK for a small number of rows.
Use an event handler on the list that updates a column value each time a new item is added or removed from a list. This is easier, but can also be inefficient if you have a large number of items in your list.
As dariom said (damn my slow typing skills, +1!), only the current row can be operated on with calculated columns by default in SharePoint. There are a couple of documented workarounds involving SharePoint Designer or jQuery, though.
You can get a Count of specific list items in an XSLT Data View
To do this you will need SharePoint Designer.
Right click on your SharePoint List view (ensure the list view contains the field you want to filter by) select convert to XSLT Data View. Then in the Data Source Windows select Data Source Tab and drag and drop the field you want to get a total on for the specific items into where you want it displayed in your XSLT Data View. Click on the numerical value that is showing you should get a lightening bolt icon, select the drop down and choose Count, then select again and choose Filter. Select "Click here to add a new clause" then choose your field name again and enter your unique value as Starbucks and click OK, you can repeat this process for other fields you want the totals on. You will now see the total number of Starbucks items in the list.
I got something similar to work in a way similar to Niall. Basically, I:
Based on the source list, created a Data View Web Part (DVWP) on a "test" web
part page.
Added the footer column, which gives a count.
Set the filter for my conditions (i.e., the items I want to count).
In the code, deleted the recurring items row.
I was left with just the footer, which displayed a filtered count for all the list items. I further customized the footer by taking out the shaded background. Finally, I exported this web part and imported it onto the page where I wanted users to see a total of items in the list (which met the criteria).

Resources