スキルアップを始める!

【スプレッドシート】リストや表の最終行を取得する方法(COUNTA関数他)

Googleスプレッドシート
Googleスプレッドシート
この記事は約4分で読めます。

※記事中に広告情報を含みます。

スキルを手に入れた時、人は強くなれる。
Youtubeでスキルアップを始める 電子書籍でスキルアップを始める
\ワードプレスのスキルアップはこちら!/ WordPress入門読本

Googleスプレッドシートで最終行を取得するための主な方法をご紹介します。

Screenshot

基本的な方法(空白を含まない場合)

COUNTA関数を使用して最終行を取得できます。シンプルな方法です。

=COUNTA(A:A)
Screenshot
Screenshot

※空白行がある場合は、適宜調整が必要です。

空白を含む場合

以下の数式で、空白セルを含む列の最終行を取得できます。

=MAX(ArrayFormula(IF(A:A="","",ROW(A:A))))
Screenshot
Screenshot
  1. ROW(A:A)
  • A列の各セルの行番号を返します
  • 例:1行目なら1、2行目なら2、という具合に番号を返します
  1. IF(A:A=””, “”, ROW(A:A))
  • A列の各セルが空白かどうかをチェックします
  • 空白の場合は””(空文字)を返します
  • 空白でない場合はその行番号を返します
  1. ArrayFormula
  • 配列全体に対して計算を実行します
  • 各行に対して個別に計算を行い、結果の配列を返します
  1. MAX
  • 最後に、得られた数値の中で最大の値を返します
  • つまり、データが存在する最後の行番号が得られます

最終行の実際の値を取得する(INDEX関数を使用する方法)

最終行の実際の値を取得するには以下の数式を使用します。

=INDEX(FILTER(A2:A, A2:A <> ""), COUNTA(FILTER(A2:A, A2:A <> "")))
Screenshot

処理の流れ:

  1. FILTER(A2:A, A2:A <> “”)
    • 結果:[データ1, データ2, データ3, データ4]
  2. COUNTA(FILTER(A2:A, A2:A <> “”))
    • 結果:4(空でない値の数)
  3. INDEX([データ1, データ2, データ3, データ4], 4)
    • 結果:データ4(配列の4番目の値)

利点:

  • 空白セルを無視できる
  • 最終行の実際の値を取得できる
  • データの追加・削除に応じて動的に更新される

間に空白行が存在する場合に、値がずれる可能性があるので注意が必要です。

INDEX関数の基本構文

=INDEX(配列, 行番号, [列番号])

主要なパラメータ

  1. 配列
  • 参照したいデータの範囲
  • 単一の行/列または2次元の配列が指定可能
  1. 行番号
  • 取得したい行の位置を指定
  • 1から始まる整数値
  1. 列番号 (省略可能)
  • 取得したい列の位置を指定
  • 1から始まる整数値
  • 単一列の場合は省略可能

最終行の実際の値を取得する(より高度な方法)

空白行を含む場合でも確実に最終値を取得する方法です。

=index(A1:A,max(ArrayFormula((--(A1:A<>"")*row(A1:A)))))
Screenshot

内側から順に説明します。

  1. A1:A<>””
  • A1から最終行までの範囲で、空でないセルをチェック
  • TRUE/FALSEの論理値の配列を返す
  • A1からスタートするため、1行目からチェック開始
  1. –(A1:A<>””)
  • 二重マイナスで論理値を数値に変換
  • TRUE → 1(データが存在する行)
  • FALSE → 0(空白行)
  1. row(A1:A)
  • 各セルの行番号を返す
  • A1から始まるため、1,2,3…という数値の配列
  • A2から始める場合と比べて、行番号が1ずつ小さくなる
  1. *(–(A1:A<>””)row(A1:A))
  • 空でないセルの行番号を取得
  • 空セルは0
  • データがある行は、その行番号が残る
  1. max(ArrayFormula(…))
  • 計算結果の中から最大値を取得
  • データが存在する最後の行番号を特定
  1. index(A1:A, 最大行番号)
  • その行番号の値を返す

注意点

  • これらの関数は列全体を参照するため、大量のデータがある場合はパフォーマンスに影響を与える可能性があります。
  • ArrayFormulaを使用する場合、シートの最大行数まで計算が行われるため、必要に応じて範囲を制限することをお勧めします。
  • データの更新や追加に応じて自動的に最終行が更新されます。

まとめ

Googleスプレッドシートで最終行を取得するためには、以上のような方法があります。

ご参考ください。

URLをコピーしました!