前提・実現したいこと
rubyでExcelの集計作業を自動化したいです。
例として、以下のようなExcelデータがあった場合
ID | Type | St | col |
---|---|---|---|
Id_1 | A | 1 | 10 |
Id_1 | A | 1 | 10 |
Id_1 | B | 2 | 20 |
Id_1 | B | 2 | 20 |
Id_2 | A | 3 | 30 |
Id_2 | A | 3 | 30 |
Id_2 | B | 4 | 40 |
Id_2 | B | 4 | 40 |
以下のようにIDとTypeでクロス集計を行いたいです。
ID | Type | St | col |
---|---|---|---|
Id_1 | A | 2 | 20 |
Id_1 | B | 4 | 40 |
Id_2 | A | 6 | 60 |
Id_2 | B | 8 | 80 |
まずIDとTypeの配列を作成し、ExcelのデータにIF分岐で一致した場合に合計させる形がいいと思いました。
初心者で勉強中であり、うまくコード化できていいません。
ヒントだけでもご助力頂けると幸いです。
ruby
1require 'roo' 2 3xls = Roo::Excelx.new('./test.xlsx') 4 5xls.each_row_streaming(offset: 1) do |row| 6 sum = 0 7 row.each do |cell| 8 if cell.value.nil? || cell.cell_type[3] != :numeric_or_formula 9 sum += cell.value 10 end 11end
補足情報(FW/ツールのバージョンなど)
Ruby2.7.2
roo
現状、要件に対してどこまでできていて、何が問題なのでしょうか。
それによって「ヒント」としても方向性が変わってくると思います。
回答1件
あなたの回答
tips
プレビュー