(Excel)値が入力されている最後の行の行番号と値を取得する

 Excelで、指定した列のうち値が存在する(つまり空白でない)最後の行の行番号とその値を取得する方法についてです。

  • IF関数、ROW関数、MAX関数の組み合わせで行番号を取得できます。
  • さらにINDEX関数を使って値を取得できます。

手順

f:id:accs2014:20200114025153p:plain:right:w550

 データはB列に記録されています。値の重複や空白セルも存在しています。
 この列のうち、値が存在する最も下方のセルの行番号とその値を取得するため、E2,E3セルに次のように入力します。

 E2セル(行番号取得)

=MAX(IF(B:B<>"",ROW(B:B)))

 IF関数により空白でないセルのそれぞれの値をそのセルの行番号に置き換え、最大値を取得します。
 ただしB列全体を参照しているため、B3セル以降に全く値が入力されてない場合に「2」という結果(「データ」の文字が入っている行の番号)を返してしまいますのでその点は注意が必要です。

 E3セル(値取得)

=INDEX(B:B,MAX(IF(B:B<>"",ROW(B:B))))

 上記の式とINDEX関数を組み合わせて値を取得します。この場合のINDEX関数の第2引数は当然「E2」に置き換えることができます。
 

f:id:accs2014:20200114025158p:plain:right:w400

 結果はこうなります。

 なお、空文字列(長さ0の文字列)であっても値とみなして取得する場合には、上記のような空文字列との比較ではなくISBLANK関数を使います。