if you create a new column from the Date column (eg. using substr()) that will contain months ("2050.01", "2050.02"), then by(data, INDICES = this_new_column, FUN = mean) will do the job.
The values in your excel spreadsheet differ by the orders of magnitude for model Flow_A to Flow_J for each day of each month. The typically used simple arithmetic averaging of such values for different models is meaningless. Your best bet might be the median for each day for all models A to J, and then calculating monthly median of daily medians for models A to J. At least this way, you can make the result insensitive to extreme values.
However, your models' outputs for the same day are so different that NO averaging will really make sense. It is a futile formal exercise. Instead of formal averaging you have to go back to your models and try to understand why your models produce so vastly different results.
In general, in statistics, different ways of averaging of the variously distributed data reflect a central tendency of the data. If there is no central tendency, the averaging becomes meaningless.