Didn't use any macros, just a plain workflow.
Used a RecordID and a Multi-Row formula tool to identify rows and columns respectively and a Dynamic Rename to fix headers. Pretty straight forward.
I was caught a bit by surprise by the cleaning steps. So I added a RegEx for replacing empty with N/A. The Crosstab-tool leaves Empty for "missing" record items, so I added a Multi-Field formula for replacing Empty with Null. I actually think that this is the first time I have found a use case for that tool. Kodos.