I'm managing a project in MS Project Pro 2013 with several phases, which I have distinguished by summary tasks. Under these summary tasks I have plenty of other tasks, several again summarized. Note that I do NOT have resources assigned to the summary tasks, only to the individual tasks.

I would like to generate a report in which I can see a list of resources, their hours and cost, grouped by each phase of the project. How do I setup such grouping?

As a reference, the following group setting groups in the Resource Usage by closest summary task (therefore not the highest level summary task). And, in a Report, using this group definition this does not display anything. group by task summary name

  • Do you want Resources then Assignments or Tasks and Assignments? Also, not clear what you mean by "As a reference, the following group setting groups in the Resource Usage by closest summary task (therefore not the highest level summary task)". – JulieS Dec 28 '16 at 20:14

I've had the same issue and was suprised, that there were only few answers and especially not very simple solutions (like VBA mentioned above). I've found a simple workaround for this report I'd like to share:

  1. I also used summary tasks to model my different project-phases (how dare I?!). Which lead me to your problem.
  2. Then I added a custom text1 field to my tasks, telling each task in which "phase" it is (this is redundant information, which I dislike myself...)
  3. I assigned resources to my tasks(!) not to my summary tasks
  4. In the view "TASK: usage" (important! not "Resource: Usage" as one might expect):
  5. Group the table after text1 (phase) and Name (resource-name) + check the box "group aggregation, not tasks" both field-types need to stay "Task" (not resource)
  6. voila: you get a phase-wise view on your resource usage...

MS Project tries REALLY really hard to hide useful and simple features.


It is possible that you are looking for the rollup functionality. This will be by default ON for your summary tasks + here's a way how to enable it:

Step 1:

Select task Information

Step 2:

Click Rollup

Now the only thing left is to roll up resource names. You can use a macro from this answer.

Sub RollupResourceNames()

    Dim tsk As Task
    Dim list As String
    Dim key As Variant

    For Each tsk In ActiveProject.Tasks
        If tsk.Summary Then
            Dim col As New Collection
            Set col = GetChildResourceAssignments(tsk)
            list = vbNullString
            For Each key In col
                list = list & ", " & key
            If Len(list) > 2 Then
                list = Mid$(list, 3)
            End If
            tsk.Text1 = list
        End If
    Next tsk

End Sub

Function GetChildResourceAssignments(parent As Task) As Collection

    Dim col As New Collection

    Dim child As Task
    Dim asn As Assignment
    For Each child In parent.OutlineChildren
        If child.Summary Then
            Dim col2 As New Collection
            Set col2 = GetChildResourceAssignments(child)
            Dim key As Variant
            For Each key In col2
                On Error Resume Next
                col.Add key, key
            Next key
        End If
        For Each asn In child.Assignments
            On Error Resume Next
            col.Add asn.Resource.Name, asn.Resource.Name
            On Error GoTo 0
        Next asn
    Next child

    Set GetChildResourceAssignments = col

End Function

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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