ミギムキ

エクセル関数のセル範囲指定で列の最終行(セル)を指定したい

エクセルを使用していると「データがどれくらいの行まで続くかわからないけど、値が入力されたら関数を適用したい」みたいなケースが出てきます。

例えば「SUM関数」でA列の2行目から最終行までの合計を出す場合は、以下のような書き方になります。

=SUM(A2:INDEX(A:A,ROWS(A:A)))

「ROWS」関数は指定された範囲の行数を返します。「A:A」という範囲を指定することで、A列に含まれる行数を取得できます。
「INDEX」関数は指定された範囲内の指定した位置のセルを返します。「A:A」という範囲の行番号として「ROWS(A:A)」で取得した行数に対応するセルを返します。
「ROWS」関数で取得した行数を「INDEX」関数でセルに変換するイメージです。

違うシートを参照する場合は以下のようになります。

=SUM(Sheet2!A2:INDEX(Sheet2!A:A,ROWS(Sheet2!A:A)))

そもそも関数にする必要があるのか

Excel2007以降の場合、最大行数は「1048576」となります。
ですので、

=SUM(A2:A1048576)

と書いてしまえばそれで済んでしまいます。わざわざ関数を使った処理にしてわかりにくくするより、素直に行数を書いた方がいいのかもしれません。

ご質問など受け付けています

記事の中でわかりにくかったところ、もっと知りたかったこと、間違っていることなど、何でもお気軽にご連絡ください。

ご連絡は下記フォームを利用いただくか、ツイッターアカウント@flat8migi宛てでもOKです。