LoginSignup
67
47

More than 3 years have passed since last update.

GoogleSpreadSheetで、指定した範囲の、データが含まれている最終行を取得する方法。

Last updated at Posted at 2018-03-22

やりたいこと

下記のようなデータがあります。

# 動物
1 パンダ
2 うさぎ
3 コアラ
4
5

A列「#」を除いて、データが含まれる最終行(上記の場合は4)を取得したいと思います。
※1列目の"#"も、データに含まれているものとします。

結論

該当列の値を配列で取得し、その数を取得することで最終行数に代替します。

function getLastRowWithValue() {
  const sheet = SpreadsheetApp.getActiveSheet(); 
  const columnBVals = sheet.getRange('B:B').getValues(); // B列「動物」の値を配列で取得
  const LastRow = columnBVals.filter(String).length;  //空白を除き、配列の数を取得

  Logger.log(LastRow); //4.0
}

上手くいきそうでいかない方法

Sheet.getLastRow()を使う

function getLastRowWithValue() {
  const sheet = SpreadsheetApp.getActiveSheet(); 
  const LastRow = sheet.getLastRow();

  Logger.log(LastRow); //6.0
}

データが含まれる最終行を返却するメソッドですが、今回はA列に値が入っているので期待値は返ってきません。

Range.getLastRow()を使う

function getLastRowWithValue() {
  const sheet = SpreadsheetApp.getActiveSheet(); 
  const range = sheet.getRange('B:B'); //B列を指定
  const LastRow = range.getLastRow();

  Logger.log(LastRow); //6.0
}

データ有無に関係なく、指定範囲の最終行が返却されてしまいます。

参考サイト

67
47
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
67
47