Apps Scriptリファレンス: Apps Script Reference |障害・課題追跡: IssueTracker |Google Workspace: Status Dashboard - Summary

2018年12月8日土曜日

データが入力されている最終列を取得する


対象のシート内でデータが入力されている最終列は
sheet.getLastColumn()
で取得できます


ここでは特定の列でデータが入力されている最終列を取得するということをやります

こういうシートがあって

1行目でデータが入っている最終列
3行目でデータが入っている最終列
をログに出してみます



コード.gs
function run() {
  var row1 = 1;
  Logger.log(getLastColumn(row1));
  var row3 = 3;
  Logger.log(getLastColumn(row3));
}

function getLastColumn(row) {
  var sheet = SpreadsheetApp.getActiveSheet();
  var values = sheet.getRange(row + ":" + row).getValues();
  for (var i = values[0].length - 1; i >= 0; i--) {
    if (values[0][i] != "") {
      break;
    }
  }
  var lastColumn = i + 1;
  return lastColumn;
}
意訳
この機能がやること
1行目で
値が入っている最終列を取得してログに出す
3行目で
値が入っている最終列を取得してログに出す


この機能がやること(対象の行を受け取る)
現在のシートを取得する
受け取った行の列の値をすべて取得する
その行の最後の列から値を見ていく
値が入っていたら
繰り返しから抜ける


値が入っている列を(配列は0始まりなので列数は+1)
返す




実行結果


参考

getRange(row, column)
https://developers.google.com/apps-script/reference/spreadsheet/sheet#getrangerow-column

getValues()
https://developers.google.com/apps-script/reference/spreadsheet/range#getvalue

getLastColumn()
https://developers.google.com/apps-script/reference/spreadsheet/sheet#getLastColumn()

Latest post

Google Formsで記述式の質問に字数制限を設定したい

記述式の質問には「回答の検証」を設定することができます フォームの編集画面 右下の︙メニューで「回答の検証」を選択します 検証方法には「数値」「テキスト」「長さ」「正規表現」という種類があります 今回は字数制限したいので「長さ」を選びます 長さには「最大文字数」か「最小文字数」を...