Still running macOS 10.15 Catalina or an earlier version? Try Exporter for Contacts 1
Exporter for Contacts 2

Exporter for Contacts 2

The premier Mac app to export your Address Book contacts to CSV, Excel and Outlook.

GET     macOS 11 Big Sur+ ·   4.8

Apple Contacts explained

Understanding how Apple Contacts does structure and organize data is the key to work efficiently with Exporter for Contacts. As you may already know, for certain contact fields, Apple Contacts allows you to enter an unlimited number of different values per contact. These multi-value fields can be tagged with pre-defined labels, some field types can even have custom labels that you define.

For example, contact A can have two email addresses of type "home" and "work", while contact B can have two email addresses of type "home", one of type "work" and one with a custom label of your choice, say "office". The same applies to many other fields as well: You can have as many different street addresses, phone numbers, etc., per contact as you like.

Exporter for
                Contacts
Exporter for
                Contacts

CSV and Excel files are storing data in rows and columns – a so-called two-dimensional table. When exporting contacts data to these formats, Exporter for Contacts needs to transform the flexible structure of Apple Contacts into the rigid grid of that table. In this grid structure, a row represents a contact, while a column represents a field type of a certain label.

As a consequence, when exporting email addresses, you have to tell Exporter for Contacts which email types you want to include in the export. For each email address/label combination that you specify in the export layout, a separate column in the Excel file will be created. Of course, if -- for example -- a contact has no email address of type "work", the corresponding Excel cell would then be empty.

Exporter for Contacts
When exporting Contact A+B using this export layout …
Exporter for
                Contacts
… this would be the result in Excel.

Conclusion

Due to the flexible structure of iOS/macOS contacts, converting them to an Excel or CSV file is nowhere near as trivial as you may think. The more contacts you have and the more different labels their fields have, the more columns the exported file will have if you export the data straight away. Fortunately, Exporter for Contacts has features on board that can combine data. The multivalue export mode in the Simple Field Chooser and the special labels "Labeled List/Unlabeled List" and "1st" to "10th" in the Custom Export Layout Editor help you to bring clarity and structure to your Excel export.