1. ホーム
  2. google-apps-script

[解決済み] 1列の最後の行を決定する

2023-03-16 07:56:59

質問

列のデータを持つシートがあります。 A を通して H .

列の最後の行を決定する必要があります A の最後の行を決定する必要があります(データ/行にギャップがないように、すべて連続しています)。

他の列にもデータがあり、その列には より 列よりも多くのデータ行を持つ A であるため、カラム A . (あるいは A ).

これをスプレッドシートレベルで行うには

=COUNTA(A2:A100)

しかし、Google Apps Script ソリューションを調査していると、何十行ものコードを含む複数の機能を実行するための要件ばかりが見つかるようです。 i++ のようなものを含む... を直接オフセットすることで、より複雑さを軽減することができます。 A1 .

このメソッドを変更するための列固有の方法は、もしかしたらあるのでしょうか?

var aLast = ss.getDataRange().getNumRows();

複雑なプロセスが必要なのであれば、それはそれでよいでしょう。しかし、よりシンプルな解決策を想像するのは難しい (そして見つけるのはさらに難しい!) と私は思います。

どなたか、私を啓発してくれる(あるいは私の泡を吹いてくれる)方はいらっしゃいませんか?

どのように解決するのですか?

JavaScriptのトリックを使ってはどうでしょうか?

var Avals = ss.getRange("A1:A").getValues();
var Alast = Avals.filter(String).length;

このアイデアは この回答 . その Array.filter() メソッドが動作しているのは Avals ネイティブ関数のコンストラクタでフィルタリングすることで、非NULL要素のみを取得することができます。

これは単一の列に対してのみ機能します。もし範囲が複数の列を含んでいる場合 filter() の結果はすべての列のセルを含むので、範囲の入力された次元の外になります。