【GAS】スプレッドシートの"大量データ"を"びっくりするくらい高速"で自動転記する!方法
はじめに:これを読めば、作業時間が劇的に減ります
スプレッドシートからスプレッドシートへ大量のデータを自動転記したい場合、いくつかの方法があります。
もしあなたが「転記作業に時間を取られて本来の仕事が進まない」と感じていたら、この内容はきっと役立つはずです。なぜなら今回の方法を使うと、これまで5分以上かかっていた処理が、ものの数十秒で終わるようになるんです。本当に。
よくある落とし穴:最初は手動、次にIMPORTRANGE関数
おそらく最初は手動でコピー&ペーストをして、
「この作業なんとかならんもんかね…」とため息。
そこからIMPORTRANGE関数にたどり着く――
この流れ、経験がある方も多いんじゃないでしょうか。
ただしこのIMPORTRANGE関数、長期利用では完全に悪手です。
常時データを自動更新する仕様ゆえに、とにかく処理が重くなりがち。
複数の関数を組み込むと、シートが一生「読み込み中」で固まる…。私も何度ヒヤッとしたことか。
次の一手:GASでコピー&貼り付け
じゃあどうするかというと、上記の記事でお伝えしたGoogle Apps Script(GAS)を使ったコピー&貼り付けです。
迫り来る壁:大量データとエラーの罠
でも、運用が進んでデータ量が増えると……
・コピー貼り付けに時間がかかる
・ときどきスクリプトがエラーになる
まずは時間の問題。まあ、これは待てば済みます。
でも次に来るのが厄介で、「エラーの頻発」。
最初は「時間帯が悪い?」なんて思いながら再実行して済ませますが、次第にエラーの頻度が増えて、青ざめるように。
さらに怖いのが、1つのスクリプトエラーが、他のスクリプトの実行まで妨げること。
以前、1日に設定していたトリガーの半数がエラーで止まり、顔面蒼白になったこともありました。
そういったエラーを避けるための場当たり的な手段
とにかく場当たり的に回避してしまいたい場合はこちらの記事が参考になるかと思います。
そもそもスクリプトのどこでつまるのか
具体的な手法をご紹介する前に、今までのスクリプトのどこでこんなに時間が掛かっているのか気になりませんか?
以前この点を調べたことがあります。詳細は割愛しますが、「コピー」はどんな量でもそこまで問題になることはありません。「貼り付けの動作」でとんでもなく時間が掛かっていることがほとんどでした
こちらでご紹介したスクリプトのイメージは、コピーした後に、手動でGoogleスプレッドシートに貼り付けることを細かく繰り返しているようなイメージです。そう聞けば時間がかかるのも納得だし、重くなったGoogleスプレッドシートではエラーが起きやすくなる点も納得がいきますよね。
そもそもエラーが起きる時は、貼り付けの動作に時間が掛かっていることを踏まえると、この貼り付け方法にメスを入れる必要があるということです。
解決策:配列で一気に貼り付ける
この記事では、そんな問題を根本から解決する方法を紹介します。
具体的には、貼り付けの仕組み自体を見直し、
データを「配列」としてまるっと貼り付ける方法です。
このやり方なら、シートの状態に左右されにくくなり、処理速度が劇的に改善します。
すごくざっくり言うと、
「データまとめといたから、この範囲にデータをまるっと貼り付けてね!」ってやるので、スプレッドシートの状態にあまり影響を受けないんです。
なぜ速くなるのか:貼り付け部分がカギ
まとめると、そもそもエラーの多くは「貼り付けの動作」に時間がかかって起こります。
つまり、ここを見直すことで、全体のパフォーマンスがぐっと良くなるわけです。
今回紹介する方法を実践すれば、5分以上かかっていたスクリプトが、ものの数十秒で終わります。
……ちょっとイメージが湧きにくいかもしれませんが、実際にスクリプトを動かしてみれば「おおっ」となるはずです。
👇お悩みのシュチュエーション別に過去記事をまとめてありますので、よければこちらもご覧ください!
0.スクリプト
ここから先は
なんと・・・感謝しかありません😭
