I did this once a long time ago and I took the easy route since it was a one-time thing. One example is in determining if a task-based form/field was recently used, I created a task report with a column for that field or fields, then sorted by last updated date (or creation date) and then looked for the last cell that wasn't blank. That told me the last time it was used or filled out.
By focusing on the object the field was used on and not the form or field itself, it allowed for more robust and flexible reporting, leading to a faster solution.
TIP: if this solved your problem, I invite you to consider marking it as a Correct Answer to help others who might also find it of use.
If you like my content, please take a moment to view and vote on my Idea Requests: https://tinyurl.com/mysocalledideas