The Situation
We have an Excel report which summarizes for our guys at the top, all the activities and time spent by staff. There are several filters available on the report (only a few to keep it simple silly). When you click on the filter, a dropdown appears with all available values listed.
The Problem
The values are listed in alphabetical order at first. If any new values come along then they get added to the bottom of the list... This is the problem. For example, if the year dropdown has a list of 2010, 2011, 2013; then if you add an entry which has year 2012, then the dropdown list will be in the following order: 2010, 2011, 2013, 2012.
The Solution
- Bring up the field list of the report (so you see the fields panel)
- Untick the filter that is not in alphabetical order
- Click on the Refresh button
- Re-Tick the filter to add it back to the report
- Move this added field to the Report Filter section (click on it and select "Move to Report Filter")
Advanced Sorting
So the above works which is great but what if you have a list of month names? January comes before February but not alphabetically, so let's do this as an example:
- Move the field from "Report Filter" to "Row Labels" (put it at the top as parent)
- Right-click on the pivotTable on one of the values of the row label you just moved
- Select "Sort"
- Select "More Sort Options"
- Select "Ascending or Descending" and select "Month" (or name of field) from the dropdown. (NOTE the "More Options" button)
- Click on OK to sort the values
Note:- Office 2010:
- If items did not sort, then remove the column from the PivotTable altogether,
- hit the Data Refresh button
- Add the column back to the "Row Labels"
- Move the field back into "Report Filter"
- Done! The filter dropdown should retain the order.
Alternatively
- Similar to the above, open a Microsoft product
- Bang "Head" against wall.
- Bang "Head" against wall.
- Bang "Head" against wall.
- Change the SQL query so that the date returns in yyyy-mm-dd format (eg. 2012-03-04)
Reverse Dates Order
If you have a date filter list and want it sorted in descending order, I would recommend you return it in SQL date format (yyyy-mm-dd) and then do "Sort Z to A". You may find that the field needs to be unlinked and relinked each time further dates get added which is why you should leave it in ascending order if you don't want this overhead.