こちらのGASは、スプレッドシート上でBig Queryのデータを抽出後に、別シートにデータをコピー、貼り付けする時に用いていました。
スプレッドシートでは、Big Queryに接続して抽出したデータを表示することができますが
例えば直近のデータだけを抽出して、そのデータを別のシートに貼り付けデータをためることができれば、クエリ費を節約することに繋がります。
GASの利用方法については、こちらの記事では割愛いたします。
参考に、公式ページだけ貼っておきます。
https://developers.google.com/apps-script?hl=ja
以下構文です。
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(”コピー先のシート名”):
var lastRow1 = sheet.getRange (1, 1) .getNextDataCell(SpreadsheetApp.Direction.DOWN) .getRow();
Logger. log (lastRow1);
function copyDataToDauSheet () {
//コピー元のシート名を入力する
let sheet_copyFrom = SpreadsheetApp. getActiveSpreadsheet().getSheetByName(”コピー元のシート名”);
//コピー先のシート名を入力する
let sheet_copyTo = SpreadsheetApp.getActiveSpreadsheet() ・getSheetByName(”コピー先のシート名”);
let lastRow = sheet_copyTo.getLastRow();
//コピー元のコピーするセルを指定する
let copyValue = sheet_copyFrom. getRange (1, 1, lastRow, 4) . getValues ()
//コピー先の貼り付けするセルを指定する
sheet_copyTo.getRange (lastRow1+1, 1, lastRow, 4). setValues (copyValue);
}
注意点として、
コピーするセルと貼り付けするセルの範囲指定、getRangeはデータの行列数によって変わります。
行列数に合わせて、指定する数値を変えてください。
また、
空欄箇所にデータを貼りつけ続けるため、lastRow1 で特定列の最終行を取得しています。
つまり、1列目に格納されているデータの空欄箇所は何行目かを算出し、その行の数値をgetRangeで指定しています。
自動でデータ抽出する流れとして、
①スプレッドシート上で、Big Queryのデータを抽出
↓
②クエリの更新スケジュールを設定
↓
③抽出されたデータを拡張機能 Apps Scriptで別のシートに貼り付ける
↓
④GASの自動更新を設定する
上記4点になるのですが、
今回のGASを利用するタイミングは、③です。
まとめ
今回は、データのコピー、貼り付けのGASを記載させて頂きました。
スプレッドシート上でどうやってデータ抽出、コピー、貼り付けを自動化しているかの詳細に関しては、また別の機会でご説明させて頂ければと思います。
最後までお読み頂きありがとうございました。