集計結果をスプレッドにスマートに反映したい
※ サンプル画像を追加しました
WinActor様には役不足との配慮から、あんまり扱ってこなかった分野、集計/レポートのシナリオに取り組み中です。
隙間時間に処理できちゃうなら、ライセンスの有効活用にも繋がるという発想の転換を経ました。
シナリオは8割がた出来上がりつつあります。
仕上げの工程、ExcelのデータをGoogleスプレッドシートに反映させるところで迷いがあります。
最下部の太字周辺について、ご意見/アイデアをお聞かせください。
太字周辺以外でも、「わたしならこうする」も教えていただければ幸いです。
環境
- WinActor7.2以上
- Excel2013以上(あるいはMicrosoft 365)
処理概要
- 前日の実績を所定の月次スプレッドシートに反映
- 反映するのは10セグメント分の件数と所要時間
RAWデータの情報
- WebシステムからCSVでダウンロードする
- 20カラム、4日分で13万レコードほど、約20MB
現状の課題
- 前任者から引き継いだExcelで日次データを集計するしくみを騙し騙し使ってきた
- 週明けや連休明けに複数回回したり、処理対象日を指定するのがとても面倒
https://winactor.com/questions/?q=初期値ありのテキストボックスをn秒後に自動的に閉じる - ChromeのシナリオでXPathを使っているものの、スプレッドシートを扱う部分は他者製で、ブラックボックス感が強い
- 「画像マッチング」や「指定時間待機」がちらほらある
- RAWデータは1か月分だとExcelの行数上限をオーバーする
WinActorの役割
- ダウンロード
- 集計
- 転記
重い腰を上げて理想を模索
- CSVをスプレッドシートにダイレクトに自動反映するために、、
→ RPAはCSVを所定の位置に格納するかアップロードするだけ
- 日にち曜日を問わず、いつでも同じ処理にするために、、
→ 常に月次データを扱う
制約
- スプレッドシートの構成/仕様は現状維持
- 10セグメント分の件数と所要時間は値で入力
作り込み中の構成
- ダウンロードフォルダと作業フォルダから前回使用ファイルを削除
- ChromeでシステムからCSVをダウンロード(A)[30秒]
- 作業フォルダに移動/リネーム(B)
- Accessファイル起動=AutoExecマクロの実行=集計対象データのみにフィルタしてCSVエクスポート(C)[10秒]
- ExcelにCSVをQueryTableでインポート[10秒]
- 本番スプレッドと同じ1か月フォーマット
- 主にCOUNTIFSとSUMIFSの集計用関数入り
- 集計結果をCSVエクスポート(D)← すでに本番スプレッドと同じセル位置
- 作業用スプレッドにインポート[10秒] ← ここまで出来上がりつつある
- 本番スプレッドと同じ1か月フォーマット
- 値のみ
- 本番用スプレッドシートにIMPORTRANGE関数をセット
- 値で上書き
※ 時間明記なしの工程は一瞬
大切にしている価値観
- 実行者を限定しない
- 端末の仕様に左右されない
(Excelの設定シートでパラメーターの変更は可能) - いつでもワンボタンで一気通貫処理
(実行前に前月分処理のオプションをオンにできる) - 軽いは正義(応答なしを回避)
- 速いは正義
思案中で、煮え切らないポイント
- 本番スプレッドへの値反映(「作り込み中の構成」の太字部分)
- 作業用スプレッドを経由するあたりが二度手間感が強い、、
- IMPORTRANGEも毎回セットするのが何だかイマイチ、、
- (D)の手前のExcelから本番スプレッドにコピペしちゃえばいいだけのこと?
クリップボード経由ってトラブりそう - もしかしたら、ExcelとかAccessを使わず、スプレッドとかGoogleの機能でも成り立っちゃうのかも
- Apps Scriptの出番かも ← ここまで書くうちに浮かんだ。これで攻めることになるかも。
Apps Scriptの見通し
- CSVをスプレッドシートにダイレクトに自動反映も目指せちゃうのかも
- スプレッドシートがExcelを超える行数を扱えたとして、重すぎやしないか
GoogleスプレッドシートとExcelではセル数の限界が大きく違う! – Active Business Lab.
https://thesweetspecialist.com/spread-selmax/
- 最大500万セル、20カラムで25万行
- わたしの環境でも同じ制限っぽい
- APIとかを叩けばクリアできそうではあるものの、実行者が限定されちゃいそうな予感
- わたしの使いかたでは、Excel等を経由せざるを得ないのかもしれない
この質問は解決済みのためクローズされています。
anothersolution 回答した質問
回答とコメントは、会員登録(無料)で閲覧できるようになります。
新規登録