A family of Microsoft word processing software products for creating web, email, and print documents.
You could do this with your existing mailmerge main document, but with the mergefields replaced by a DATABASE field that groups the data. Assuming the mailmerge main document is kept in the same folder as the data source, the DATABASE field could be coded as:
{DATABASE \d "{FILENAME \p}/../MM datasource.xlsx" \s " SELECT [Subordinate Forename], [Subordinate Surname], [Subordinate ID], [Subordinate Job Title] FROM [Sheet1$] WHERE [Manager ID] = {MERGEFIELD Manager_ID} ORDER BY [Subordinate Job Title] " \l "15" \b "49" \h}
where 'MM datasource.xlsx' is the data source filename - it could be a database filename, if that's what you use. If the mailmerge main document is NOT kept in the same folder as the data source, you'd need to replace all of "{FILENAME \p}/../MM datasource.xlsx" with the full path & filename (plus the encompassing double-quotes). The \l and \b switches control the table format, while the \h switch insert a table header row - see: https://support.office.com/en-us/article/Field-codes-Database-field-04398159-a2c9-463f-bb59-558a87badcbc?ui=en-US&rs=en-US&ad=US
Note: The field brace pairs (i.e. '{ }') for the above field code are all created in the document itself, via Ctrl-F9 (Cmd-F9 on a Mac); you can't simply type them or copy & paste them from this message. Nor is it practical to add them via any of the standard Word dialogues. The spaces represented in the field construction are all required.
Then, to drive the process, you could use a macro like:
Sub Merge_Groups_To_Individual_Emails()
Application.ScreenUpdating = False
Dim MainDoc As Document, StrMgrID As String, i As Long
Set MainDoc = ActiveDocument
With MainDoc
For i = 1 To .MailMerge.DataSource.RecordCount
With .MailMerge
.Destination = wdSendToEmail
.SuppressBlankLines = True
With .DataSource
.FirstRecord = i
.LastRecord = i
.ActiveRecord = i
End With
If .DataSource.DataFields("Manager_ID") <> StrMgrID Then
StrMgrID = .DataSource.DataFields("Manager_ID")
.Execute Pause:=False
End If
End With
Next i
End With
Application.ScreenUpdating = True
End Sub