See attached:
1) I added a sheet called 'cell-addr_fx' that uses the cell() formula to put all the necessary cell address for the Entry sheet in these cells.
2) I then copy-values only this sheet to 'cell-addr_values'. Now if you add a row to Entry, then the cell values in this sheet never change.
3) I then edited your vlookup formulas to include the INDIRECT() formula inside of the VLOOKUP() formula.
4) I copied more rows down in the datatbl sheet to see if this new formula copies ok, and it does. NOTE: The VLOOKUP() formula in column 'E' did NOT have absolute addressing for the LOOKUP table, which it needs, so I corrected this.
5)
Note: Essentially the 'cell-addr_fx' sheet is no longer used anymore. Once you have the workbook fully built-up, this sheet could be deleted.
Everything seems to work, I think, per your description. And, no macros required(

). The trick here is using the INDIRECT() formula and using it to read hard values that contain text referring to the 'Entry' sheet cells. This way you can insert rows in 'Entry', and these hard values (the copy-values only cells) will never change. So, the INDIRECT() formula sitting in 'datatbl!A2', for example, will always look at 'Entry!A2'. ...
SUGGESTION: The full array of Lookup Formulas (& there are a lot of them) are kind of cool to read up on & know what they can do for you; this will come in handy for you, like this situation!
I bet there is even an easier way to do this. Just wait a few hours and one of the forum master-mind-mega-gurus (speaking with the upmost of respect!

... and there's about ~10-15 of them out there), will chime in and show how to do this without the extra two sheets, all in one simple forumula. Essentially, all you really need is a way to TURN OFF the changing of formula addressing (in sheet 'datatbl') that occurs when you move a reference cell. I don't know how to do this without the shenanigans that I describe above, but this does work & it isn't too ugly, but look forward to learning a better way! ... Regards!
Bookmarks