GASで指定列の最終行を取得する方法

スプレッドシート

GASでスプレッドシートの最終行を取得したいときは、getLastRowを使いますが、シート全体最終行しか取得できません。

A列にINDEXとしてデータ数と関係ない数字が1から順に入力されているデータはよくありますが、この場合にgetLastRowではデータ数を取得することができません。

そんなデータを業務で扱うときに最終行の取得方法ですこし悩んだので、僕が使った方法を紹介します!

スプレッドシートの指定列の最終行を取得する方法

下のコードがdataNumberという変数名で指定列の最終行を取得し、出力する関数です。

‘シート名’と取得したいシート名に、’?:?’は取得したい列に合わせて変更してください。

空白行は行数としてカウントされないので、データが連続した行に使用してください。

const spreadSheet = SpreadsheetApp.getActiveSpreadsheet();
const testSheet = spreadSheet.getSheetByName('シート名'); //取得したいシート名を入力
const lastRow = testSheet.getRange('列:列').getValues().filter(String).length //取得したい列を入力(B列の場合'B:B')

function number() {
  console.log(lastRow);
}

関数の内容を簡単に説明します。

3行目まではスプレッドシートでGASを使うときにはお決まりの内容なので説明を割愛します。

4行目のgetRange(‘?:?’)は指定列のセルをすべて取得しています。(空白のセルも含む)

次に、getValues()で指定列の値を2次元配列として取得しています。

そして、filter(String)で空白の配列を除くフィルターをかけます。

最後に、lengthで配列の個数を取得します。

以上、GASを使ってスプレッドシートの指定列の最終行を取得する方法でした!

指定行の最終列を取得する方法は、今回の方法に少し工夫が必要なので、次回の記事で紹介します!

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

上部へスクロール