I've created a simple custom report in Microsoft Project 2013 with a task table that I'd like to sort on Duration1, which happens to be calculated from a formula (as described in #ERROR in User-Defined Field Formula Even After Testing Against ProjDateValue('NA')). Going from "No Sort" to sorting on this field does change the order of the tasks in the table, but they don't seem to be in any particular order - and most certainly not in ascending order. Changing the sort order to descending on this field again re-orders the tasks - but not in correct descending order. I've found other references to similar problems (c.f. http://www.mpug.com/forums/topic/project-2013-sorting-by-date-duration-etc-not-working-in-custom-report/) but without any solution. Am I missing something or is this just a Project 2013 defect?

The report happens to use a custom task filter, but taking that off doesn't seem to make a difference in correctly sorting. Same is true when changing the outline level.

  • I am having a similar issue. After reading several blogs with other users having similar complaints, I'm beginning to think this is a software glitch. :-(
    – user21212
    Commented Nov 18, 2015 at 15:58
  • Having exactly the same problem but on the FINISH field. On the custom report choosing Sort by FINISH (Asc or Desc) does not result in an ordered list.
    – Lynn
    Commented May 15, 2017 at 23:05

3 Answers 3


I cannot reproduce the error. In Duration1 I have the following formula based upon your earlier post:

IIf([Baseline1 Finish]=ProjDateVAlue("NA")Or Not IsDate([Finish]),0,IIf(ProjDateDiff([Baseline1 Finish],[Finish])<0,0,ProjDateDiff([Baseline1 Finish],[Finish])))

I see any negative values turned to zero and any positive values calculated.

I create the report adding a table showing Task name, Start, Finish, % Complete, and Duration1. I sort on duration1 and all works as expected.

Please make sure you are up to date on all updates: http://blogs.technet.com/b/projectsupport/p/msp13.aspx

  • Thanks for the idea. I am at 15.0.4745.1000 so I should be up to date. I'll keep tinkering to see if I can find anything that seems to affect the behavior and will report back.
    – JimMSDN
    Commented Aug 26, 2015 at 14:43
  • Does this occur in all files? If you create a new file does the problem persist?
    – JulieS
    Commented Aug 27, 2015 at 19:22

I found an answer over in MS Community by sdickinson72:

The fix for this is to add a group then sort by date.

I.E. to show all milestones in date ascending add a group to the filter to group Milestones = Yes, remove any hierachy and then sort accordingly.

  • Your answer could be improved with additional supporting information. Please edit to add further details, such as citations or documentation, so that others can confirm that your answer is correct. You can find more information on how to write good answers in the help center.
    – Community Bot
    Commented Mar 8, 2023 at 2:15

Riffing off the note above, grouped by Finish date ascending, then outline level = all subtasks. Actually liked this output because it puts a heading by date in a different color over each group. NOTE: there is a limit on how many rows these reports will return, I think like 200, so you will need to filter. Another issue: to get tasks due by status date (which you can set by navigating to the Project tab on the ribbon, "Status Date: is in the "Status" Group), surprise! you cannot just create a filter, because some genius at MS Project decided it should not be a compare field. After an internet search, I found a workaround, which is to create a custom field that does the compare and returns yes/no, then you can create a filter that evaluates that field. Here's how to do (1) set up a new custom field - I named it "Due by status" (1a) add a Flag field not in use to your Task view (doesn't matter which one, you want a "yes"/"no" result), (1b) customize the flag field: (1.b.1) Right click the flag field you just added and choose "custom fields", (1.b.2) in the 'custom fields" dialog box make 2 changes: (1.b.2.1) click Rename - rename the field; (1.b.2.2) Under "custom attributes" choose formula, then click on the formula button and input: ([%Complete]<>100) And ([Finish]<=[Status Date]) note: I wanted to screen out the completed tasks. If you want to see all the tasks that were due, then just input [Finish]<=[Status Date]. (1.b.2.3) click OK to Exit/save. (2) Now set up your filter: (2a)Go to the Ribbon and navigate to View, Filter, New Filter. (2b) In the Filter setup dialog box, (2.b.1)name your filter (2.b.2) create new filter criteria: Field name: Due by status; Test: Equals; Value(s): Yes then click Save. Now you have a filter you can select inside your report.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.