Excel(エクセル)で一番下の行の内容を取得する方法/CountA、Indirect関数の組み合わせ方

carnival IT

何か他の目的と組み合わせて使うような手順ですが、「入力内容の一番下の行を取得する」方法のご紹介です。

Advertisements

最後の行を取得する

データの個数を数える
CountA(範囲)
lastcolumn1
こんな表があるとして……。
lastcolumn2
一番最後(下)の行の内容を取得してみたいと思います。
lastcolumn3
まずは、行にデータがいくつかあるかを取得します。=counta(B:B)(B列全て入力されたデータの数を数えると入力します。
lastcolumn4
B列には12個のデータが存在することがわかりました。
今回は行すべてで行ってますが、内容に応じて=counta(B2:B1000)のように開始位置・範囲は調節してください。
lastcolumn5
さて、あとは取得した数字にアルファベットをつけて、=B12とすれば表示されそうなものです。
そこで=”=B” & counta(B:B)(あるいは=”B” & counta(B:B))のように入れてみましたが……。
lastcolumn6
これだとなんかうまくいきません。
lastcolumn7
そこで、Indirect関数というのを使ってみます。=indirect(“B” & counta(B:B))と入れてみると……。
lastcolumn8
なぜかうまくいきました。
lastcolumn9
試しにデータを追加してみましたが、ちゃんと動作するようです。

Indirect関数とは

指定した文字列を参照する
Indirect(文字列)
lastcolumn10
Excelの仕様として、直接=B12とセルに入力するのと、&関数でくっつけた結果=B12となったものでは挙動が異なります。
lastcolumn11
こんな感じで、参照式ではなくただの文字列として扱われます。
この文字列を「参照して良い」と許可を与えるのがIndirect関数です。
lastcolumn12
Indirect関数で参照する対象には「=」はいらないので、消します。
lastcolumn13
「B」と「12」を別々のセルから参照し、これをIndirect関数で参照して、=indirect(G5 & H5)という式を作ります。
lastcolumn14
するとちゃんと
参照式として機能します。Indirect関数はこういう感じです。
やりたいことから方法を探すエクセルExcel操作・関数・VBA(マクロ)逆引きまとめ
逆引き(やりたいことから探す)Excel記事まとめ
関数・演算子・メソッド・プロパティ名から探すExcel/VBA(マクロ)使い方・組み合わせ方まとめ
こちらはExcelやメソッドの諸機能を、機能の名称から探せるまとめ記事です。

コメント