投稿日: 2023年3月12日 | 更新日: 2023年6月17日
スプレッドシート
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を使ってスプレッドシートの指定列の最終行を取得する方法でした!
指定行の最終列を取得する方法は、今回の方法に少し工夫が必要なので、次回の記事で紹介します!