最終行や最終列のセルアドレスを求めるには? ADDRESSとCOUNTAを組み合わせたデータ範囲の特定 | EXCELトピックス

スポンサーリンク
スポンサーリンク
amazon
スマイルSALE
--:--:--
ad. 価格範囲を指定して商品を探せます

最終行や最終列のセルアドレスを求めるには?

Excelでデータを扱う際、最後に入力されているセルのアドレスを取得したいことがあります。

例えば、「最後のデータが入力されているセルはどこか」をA4C1のようなセルアドレスで取得できると、動的な集計やVBAなどでも活用できます。

この記事では、ADDRESS関数とCOUNTA関数を使う方法を中心に、途中に空白セルがある場合の方法も紹介します。

ADDRESS関数とは?

ADDRESS関数は、指定した行番号と列番号からセルアドレスを作成する関数です。

基本構文

=ADDRESS(行番号,列番号,[参照形式],[A1形式],[シート名])

第3引数を省略するか1を指定すると、$A$1形式(絶対参照)になります。

第3引数に4を指定すると、A1形式(相対参照)で返します。

COUNTA関数とは?

COUNTA関数は、空白以外のセル数を数える関数です。

基本構文

=COUNTA(範囲)

データ数を利用して最後の行番号を求めることができます。

最終行のセルアドレスを取得する方法

次のようなデータがあるとします。

A B
1 ID 商品名
2 101 りんご
3 102 バナナ
4 103 ぶどう

A列の最後のデータセルを取得するには、次のように入力します。

=ADDRESS(COUNTA(A:A),1,4)

結果はA4になります。

同様にB列なら次の数式です。

=ADDRESS(COUNTA(B:B),2,4)

結果はB4になります。

数式の解説

  • COUNTA(A:A):A列の入力済みセル数を取得します。
  • ADDRESS(...,1,4):列番号1(A列)のセルアドレスを相対参照で返します。

最終列のセルアドレスを取得する方法

1行目の最後に入力されているセルを取得するには、次の数式を使用します。

=ADDRESS(1,COUNTA(1:1),4)

例えば、A1~C1までデータが入力されている場合は、結果はC1になります。

COUNTA関数を使う際の注意点

COUNTA関数は空白セルを数えないため、途中に空白セルがある場合は正しい最終セルを取得できないことがあります。

例えば、次のようなデータでは正しい結果になりません。

セル
A1 ID
A2 101
A3 (空白)
A4 103

このようなデータでは、COUNTA(A:A)は3となるため、A3を返してしまいます。

途中に空白がある場合の取得方法

途中に空白セルが含まれる可能性がある場合は、LOOKUP関数とCELL関数を組み合わせる方法がおすすめです。

=CELL("address",LOOKUP(2,1/(A:A<>""),A:A))

この数式なら、途中に空白セルがあっても最後に入力されているセルのアドレスを取得できます。

どちらの方法を使えばよい?

方法 おすすめのケース
ADDRESSCOUNTA 空白セルがなく、シンプルな一覧表
CELLLOOKUP 途中に空白セルがある可能性がある表

注意点

  • COUNTA関数は途中の空白セルを考慮できません。
  • ADDRESS関数の第3引数は、1が絶対参照、4が相対参照です。
  • 列全体(A:Aなど)を対象にすると、非常に大きなブックでは計算量が増える場合があります。

まとめ

  • セルアドレスはADDRESS関数で取得できる。
  • データ数から最終セルを求めるならCOUNTA関数との組み合わせが便利。
  • 途中に空白セルがある場合はCOUNTAでは正しく取得できないことがある。
  • 空白セルが含まれる場合はCELL関数とLOOKUP関数を組み合わせる方法がおすすめ。

使用した関数について

ADDRESS関数でセル番号を文字として取得する方法や参照の種類や形式についてわかりやすく解説
ADDRESS関数についてADDRESSの概要セル参照を文字列で取得Excel関数=ADDRESS(行番号, 列番号, , , )概要 ADDRESS関数は、指定した行番号と列番号に基づいてセルの参照を文字列として返します。 参照の種類には絶対参照、相対参照、混合参照を指定できます。 参照形式にはA1形式とR1C1形式...
COUNTA関数で指定したデータの個数を求める方法についてわかりやすく解説
COUNTA関数についてCOUNTA関数の概要COUNTAExcel関数=COUNTA( 数値 , 数値 ,,, ) 指定したデータの個数を求める(空白文字、エラー値も含まれる) 数値、数値はにあるデータの個数を求めます。 データは文字、空白文字やエラーなどもカウントされます。 空白文字(スペース)ではなく、データその...