こんにちは!非エンジニアでウェブマーケターの木庭です @koba_tokyodays !
基本的な構成は同じだけど、数箇所変更したスプレッドシートを作るときどうしてますか?
シートのコピーを作成してシート名変える…1シートだけならいいですが、大量のシートがあるときめちゃめんどくさくないですか?
そこでこの記事ではGASをつかってスプレッドシート上で大量のシートをコピペ&リネームする方法をご紹介します!
この記事は以下の方向けの内容です。
- 地区ごとのデータを集計するためのシートをつくりたいんだけど、コピペだるい
- データのセル位置を統一したうえでコピペしたい
- とにかく誰でもできる作業を秒で終わらせたい
タップできる目次
テンプレ用のスプレッドシートを準備する
整形用のシートを用意する
A2,3の内容です。
ss.duplicateActiveSheet().setName(' ');
- A3のシングルクオーテーションはひとつだと表示されないのでスプレッドシート上では'');と記述しています。
- A6〜9は可変で、かつもちろん増やして頂いて構いません!
- B6以下は =A$2&A6&A$3 と記述しています。
テンプレ用のシートを用意する
とりあえずなんか入れてみました。
スクリプトエディタを設定する
スプレッドシート>ツール>スクリプトエディタで以下のように設定します。スクリプト名やプロジェクト名はご自由に。
function sheetcopy(){ var ss = SpreadsheetApp.getActiveSpreadsheet(); //直近で開いたシートを起点にする //コピーしたシートをリネーム ss.duplicateActiveSheet().setName('日本'); ss.duplicateActiveSheet().setName('やや日本'); ss.duplicateActiveSheet().setName('おおむね日本'); ss.duplicateActiveSheet().setName('だいたい日本'); // 増やしたいシートで増減する }
スクリプトの実行
スクリプト画面内の▶から実行します。
許可を求められるのでOKを進めていきます。
※まれに安全ではないページと表示されますが、左下の詳細>ページに進むを選択してください。
無事に終わりました。
スプレッドシートを確認
テンプレがコピーされつつシート名も意図した内容になりました!
おまけ:データを関数で集計する
テンプレでシートを作成したことにより、データの位置が同じなのでデータの集計が簡単になりました。
せっかくなので関数を使った簡単集計方法をご紹介します!
集計用のシートを作る
dataというシートを作成し、集計する内容をA列と1行目に記載しました。1行目は =TRANSPOSE('整形用'!A6:A9) にしています。
INDIRECT関数で簡単収集!
indirect関数を使い、日本!B2セルを=indirect(B$1&"!B2")で表現します。他のセルも同様の設定でできるので、わざわざ各シートにリンクを貼らないで済むわけです。
おわりに
シートのコピペって結構手間かかるのでめんどくさかったのですが、このスクリプトを使って秒でコピペするようになってから幸せです!
テンプレ内容間違えたわ〜ってときはCommand+Z(mac)or Control+Z(Windows)しまくるだけで消せるのでサクサク修正からの再コピペOKです!
データ集計も合わせて是非お使いください!
というわけでGASでつくるシートの爆速コピペ方法でした!
ツイッターアカウントでも色々つぶやいてるので是非フォローしてください☆@koba_tokyodays