GAS スプレッドシートのデータを配列として取得する

備忘録記事です。GoogleAppsScriptで、スプレッドシートのデータを配列として取得する方法。

※多くの他の解説記事では、「スプレッドシートのセル範囲(例えばA1からE10までの5行10列)を配列として取得する」というgetRange,getValuesの解説をしているが、このページでは、「1行目」と「3行目」のデータだけを配列として取得する方法を解説しておく。

前提(やりたいこと)

図のように、スプレッドシートの「1行目」つまり各データの「列名」に当たる部分と、「3行目」の該当データだけをひとまとまりの配列データとして取得したい、というもの。

このシートのデータを全部まとめて配列として取得したいというのなら、よくある解説のように「getRange」「getValues」で一発で取得すればいいが、今回のように「連続していない(飛び飛びの)セル範囲」のデータを配列として取得したい、という場合にはどうすればイイか?

 

書き方

図のように書く

function myFunction() {
  var MySheet=SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var MyArray1=MySheet.getRange(1,1,1,8).getValues();・・・(1)
  var MyArray2=MySheet.getRange(3,1,1,8).getValues();・・・(2)
  var MyArray=Array(MyArray1,MyArray2);・・・(3)
  Logger.log(MyArray[1][0][4]);
}
※↓ログに書き出された内容
12:22:15 情報 yoshioka_tomoka@example.com・・・(4)

(1)1行目の1列目(A列)~8列目(H列)までのセル範囲データを配列として取得

(2)3行目の1列目(A列)~8列目(H列)までのセル範囲データを配列として取得

(3)(1)と(2)のそれぞれの配列を要素として一つの配列に取りまとめる

取得した配列の中からデータを取り出すときには、(4)のようにする