In case it's useful to anyone: google sheets' lambda[1] and map[2] functions have prevented a ton of fill-down issues for me. Plus the ability to use a whole column without specifying number of rows (e.g. "A1:B" instead of "A1:B1000")
Those functions + a little bit of custom app script have helped me (not very technical) get pretty far in building maintainable data pipelines, reporting, etc. in gsheets.
[1] https://support.google.com/docs/answer/12508718 [2] https://support.google.com/docs/answer/12568985