The best way, IMO, is via a query table. No formulae. Uses very powerful database functionality. Easily handles tens of thousand of records.
The files are assumed to have been saved. Within each file give each data range a defined name. Not dynamic. Headers to all fields.
For simplicity (cause I don't want to 'write a book') I'll assume the data ranges are in the one workbook and the results is returned to that file. (They don't have to be. The two source data files can be closed and the result in a new file.)
I'm going to assume table names Table1 and Table2.
Via menu data, import external data, new database query, Excel files. Select the file and then in the wizard select Table1 fields FamilyName, FirstName & Title. Same three fields also from Table2.
You get a message about the wizard can't continue & you must join the tables. Hit OK. MS Query opens. Where you see the images of the tables, click on the FamilyName field in one table and drag it to the corresponding on in the other table. Release the mouse button to create the join. Repeat for the other two fields.
The result set you see below is what you'll have as an answer. The fields are there twice each. You can remove one set of three to leave what you really need - either select the whole field and then Records, Remove Column OR hit the SQL button and edit out extra the names after where it says SELECT.
You might have duplicate entries. If you only want unique instances, either View, Query Properties, Unique Values Only. OR, in the SQL directly enter DISTINCT after SELECT. So as to have SELECT DISTINCT ...
Put the result set in Excel with either File, Return Data to Excel, OR, use the 'door' button on the toolbar.
It is simple to do and can be very powerful. Quick. Works on closed files. Etc, etc.
Like a pivot table, you need to refresh it.
This is a quick outline. Please try it. It is good.
Fazza