Yes, there is. To play with such time based measurements, especially for data over such long duration, you could use a time table. But you need 2016b or later. If you have that, your job is so much easier.
Import your csv file as table and then create a timetable from it .Then you can do whatever you want to do with it, like monthly mean, yearly sum, etc. For example,
data_table = readtable('yourfile.csv');
data_timetable = table2timetable(data_table);
and then you could use retime to do hourly, monthly, weekly and all sorts of such analytics. https://www.mathworks.com/help/matlab/ref/retime.html
hourly_mean_table = retime(data_timetable,'hourly','mean')
Since you're already working on a GUI, you can add couple of pushbuttons and checkboxes to leverage these functions.