The real problem isn't your formula, it's the tool you're using to run it. You have a working setup that pulls invoice data in order using VLOOKUP with a concatenated key, and it works fine until you try to scale past a few hundred rows. Then Excel freezes. That's not a sign that you need a better formula. It's a sign that the spreadsheet itself is the bottleneck.
Traditional spreadsheets like Excel treat every formula as a live calculation that runs every time you change a cell or scroll the sheet. When you drag a VLOOKUP down 400 rows, you're not just asking for 400 lookups. You're asking the engine to re-evaluate every single one of them, plus every dependent cell, every time you breathe on the workbook. Add IFNA to suppress errors, and you've layered in conditional logic that compounds the load. The result is exactly what you're experiencing: a frozen screen and a workflow that stops dead.
Switching to INDEX/MATCH might help marginally, but it won't solve the structural issue. Both VLOOKUP and INDEX/MATCH are row-by-row, formula-per-cell approaches. They work fine for small datasets. For 500 invoices per person, with multiple columns of lookup data, you're asking a tool designed for manual tables to act like a database engine. It can't. That's not a failure of your technique, it's a limitation of the platform.
What you need is a tool that treats data as data, not as a grid of interdependent formulas. AI-native spreadsheets process lookups and joins as operations on entire columns, not as individual cell calculations. They don't freeze because they don't recalculate everything every time you scroll. They compute once, cache the result, and let you move on. For a project generating statements for hundreds of individuals with thousands of invoices, that's not a luxury, it's the only practical path forward.
You don't need a better Excel formula. You need a better environment for the work you're already doing. The next time you hit row 302 and the screen locks, consider that the tool itself is telling you it's time to switch.