LANG SELRCT

コードを書く場所

2018年2月26日月曜日

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


関数でやると

最大値は
=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で配列内の最大値・最小値を取得したい


最新の投稿

Salesforceの開発環境を無料で試してみたい(Developers Editoin)

無料トライアルは使用期間が限定されますが、Developers Editionなら条件を満たせば期限に縛られることはないようです。 期限については以下のページに記載がありました。 6ヶ月以上の期間を空けずに継続的に利用をしていれば、あなたのDeveloper Editi...