Just so I understand this correctly, are you looking to get a snapshot of what the data look likes historically every single end of month?
This is quite difficult for Power BI as it’s not really set up for this. You would usually do this say at the database layer and then feed a table into Power BI that has all the data.
Here’s a Power BI community post which explains a few options - https://community.powerbi.com/t5/Desktop/Data-Snapshots/td-p/354840
None of these really feel much better than what you are doing now, but just other options to review.
Maybe you could also setup a table in a specific format and just export that at the end of every month. Similar to what you are doing now, but saves you have to write it done. You can obviously place your data into many different formats in Power BI and export it however you like.
Sam