require "csv" csv_opts = { :col_sep => ";", :skip_lines => /^(Notes|The |;)/, :headers => true, :converters => :all, } sales_by_date = {} rows = CSV.foreach(ARGV[0], csv_opts) rows.each do |row| d = Date.parse(row["Date"]) if sales_by_date[d] sales_by_date[d][:count] += row["quantity"] sales_by_date[d][:total] += row["revenue EUR"] else sales_by_date[d] = {:count => row["quantity"], :total => row["revenue EUR"]} end end sales_by_date.each do |row| p row end