LANG SELRCT

Apps Script Reference  (Create: Create new Spreadsheet | Create new Apps Script

Monday, February 26, 2018

シート内の特定の列の最大値と最小値を取得する


関数でやると

最大値は
=max(A:A)

最小値は
=min(A:A)

のようにA列の中での最大値・最小値を出すということを
スクリプトで実現するコードの例です

この例では特定の列にある日付の最大値と最小値を取得します



コード.gs
function get_log(){
  var array = get_array();
  var max = get_max(array);
  var min = get_min(array);
  var max_date = format_date(max);
  var min_date = format_date(min);
  Logger.log([max_date, min_date]);
}

function get_array() {
  var sh = SpreadsheetApp.getActiveSheet();
  var last_row = sh.getLastRow();
  var range = sh.getRange("A2:A" + last_row)
  var values = range.getValues();
  var array = [];
  for(var i = 0; i < values.length; i++){
    array.push(values[i][0]);
  }
  return array;
}

function get_max(array) {
  array.sort(sorting);
  var max = array[array.length-1];
  return max;
}

function get_min(array) {
  array.sort(sorting);
  var min = array[0];
  return min;
}

function sorting(a, b){
  return a - b;
}

function format_date(date){
  return  Utilities.formatDate(new Date(date), "Asia/Tokyo", "yyyy/MM/dd HH:mm:ss")
}
意訳
この機能がやること
get_array()からarrayを取得して
get_max(array)に渡してmaxを取得して
get_min(array)に渡してminを取得して
max_dateをフォーマットして
min_dateをフォーマットして
ログに出す


この機能がやること
すくレッドシートを取得して
データが入っている最終行を取得して
範囲を指定して
値を取得して
arrayという空の配列を作って
値の数だけ以下を繰り返す
array配列に1つずつ値を追加する

出来上がったarrayを返す


この機能がやること
渡されたarrayの要素をsortingで昇順にソートして
配列の末尾(最大値)を取得して
返す


この機能がやること
渡されたarrayの要素をsortingで昇順にソートして
配列の先頭(最小値)を取得して
返す


この機能がやること
配列内の数値の大小を引き算した結果を返す(正の数か負の数かで配列の順番をソートする)


この機能がやること
渡されたdateを指定したタイムゾーンと形式でフォーマットして返す



関連記事

JavaScriptで配列内の最大値・最小値を取得したい


Latest post

スプレッドシートA列にある複数のテキストをスライドに追加したい(Google Apps Script)

今回Google Apps Scriptでやりたいこと GoogleスプレッドシートA列にある複数の値を取得して Googleスライドに渡して 図形オブジェクトのテキストとして追加したい ① スプレッドシートのA列に値を入れておく ② Code.gsのinsertNewShape...