menu

【GAS】getLastRowで空白を除く最終行を取得したい

2023年5月7日

CodeGoogleAppsScript

GASの関数getLastRowでスプレッドシートの最終行を取得したいときにFILTER関数やUNIQUE関数で一番下のデータまで取得した場合だと、空白も含めてシート全ての行を取得してしまいます。

=Filter(A1:A,)
=UNIQUE(A1:A)
みたいに下の行を全部取得した時。

この時にデータが入っている部分の最終行を取得したい時の記述方法です。

空白を除く最終行を取得する

結論から言うとFilterやUNIQUEを使った場合、getLastRowでは空白行も入ってしまうので使いません。

その代わりに以下の方法で空白を取り除いて取得します。

  const ss = SpreadsheetApp.openById("シートID");
  const sheet = ss.getSheetByName('シート名');

  // 空白データではない行数を取得する方法①
  const rows = sheet.getRange('A1:A').getValues(); //A列の値を全て取得
  const lastRow = rows.filter(String).length; //空白の要素を除いた長さを取得
  Logger.log(lastRow);

  // 空白データではない行数を取得する方法②
  const rows = sheet.getRange('A1:A').getValues(); //A列の値を全て取得
  const lastRow = rows.filter(row => row[0] !== '').length;
  Logger.log(lastRow);

①と②どちらの方法でも、空白でない最終行までを取得できます。

Follow Me!

Aji ろぐろぐみー筆者

GoogleAppsScriptを使った業務効率化が得意なWeb屋。
詳しいプロフィールはこのページで色々書いてます。Twitterもやってます。コメント頂けると陸に上がった魚のようにピチピチ喜びます!

関連記事

コメントはこちらからどうぞ

プライバシーポリシーはこちら
また、コメントはこちらで承認の作業を行うまでは表示されません。ご了承ください。

CAPTCHA