![見出し画像](https://assets.st-note.com/production/uploads/images/135718979/rectangle_large_type_2_2dd99e7249fb63eee7c35dc71f25fb5e.png?width=1200)
前回の続き。GAS業務を自動化した話。
前回RPAの話をしましたが、そこからアップデートがありましてそれについても少し書こうと思います。先回のお話は以下。
今回はGASです。
先日は「自動でデータを抽出する」という部分に特化してRPAを設計するというものでしたが、今回はそれをより手をかけずに集計するというものになります。
注意:GASはGoogle Apps Scriptの略でスプレッドシートが使用できることが前提条件となります。
GASは昨年少し勉強していて、以下のような実装を経験しました。
Gmailをslackに書き出し
Googleフォームの内容をスプレッドシートからslackへ書き出し
会社のツールがslackなのでどうしてもslackに寄っていたようでした。
課題:多数のCSVの統合
先日のRPAで20,30のCSVを抽出しました。これを統合する作業になります。このくらいであれば手動で統合することも可能ですが、開いてコピペの作業がおっくうで集計作業を後回しにしてしまうという可能性があるので自動化しちゃいます。
ポイントは”列数(縦)の異なるCSVの統合”
私はなんちゃってGASマンなのでゼロベースでコードは書けません。なので書かれている人のコードをつなぎ合わせて自分の求める機能を実装します。(本当は書けるようになりたい)
今回、データによって行数が異なるためその部分が一番手こずりました。いくつかのコードを試させていてもらったんですが行数が異なるとそこで作業がSTOPしてしまうことが多かったです。
①同じ行数のCSVを統合する場合
最初は同じ行数を統合する場合で参考になったスクリプトです。
この動画で学べるスクリプトは以下です。
Google Driveに保存したCSVをスプレッドシートに変換
変換されたシートを1枚のシートに統合
上記の手順を踏んでいます。個別のスプシも生成されるので便利です。ちなみに今回、このCSV→スプレッドシートへ自動変換の部分は採用させていただきました。(圧倒的感謝)
②列数の異なるCSVの統合について
ここから本題です。列数の異なるシートを一枚に統合できます。
ただし、元がスプレッドシートであるためCSVには対応していません。そこで先ほどの”CSVをスプレッドシートに変換する”機能部分だけを使用します。どちらもGoogle Driveに入れる→GASを実行する→統合(ないし変換)となります。ちなみにここまでCSVと書いていますが、XLSファイルでも問題ありません。
まとめ
詳細を省く形となってしまいましたが、リンク先を読んでいただければ自然と理解できるくらい丁寧でしたのでそちらに譲ることといたします。
今回は2つの工程で大量のCSV(XLS)を統合することができるようになりました。
①Google DriveにCSVを入れる。前半のGASでスプレッドシートに変換。
②変換されたシートのフォルダIDを指定して後半のGASで統合。
これで抽出→統合までを自動化できました。おおよそ作業の8割といったところで、そこから数式を入力したりは発生しますがデータ整形にかける時間が大幅に減りました。これで大量のデータを社内にばら撒けます。(私はアイディエーションは不得手なので優秀な同僚たちにデータをたくさん食べさせる仕事をしてます)
文系でもデータ整形はなんとでもなる時代に感謝です。