- 締切済み
Excel関数で、範囲内の最後のセルを得る方法
Excelの表の中で、範囲内の最後のデータ、例えば、a1:a9のうち、a3:a5だけにデータがあるとき、a5のデータを取得したいとき、どんなふうに関数を入力すればいいですか? 始まるセルも、終わりのセルも一定でない場合を想定しています。 ここでいう最後とは範囲内のもっとも下のデータという意味です。 やりたいことは分っても関数名も組み合わせ方も分りません。 例えば、データがある、範囲を特定し、その範囲の最後のセルのセルを返してもらうでもいいかもしれません。 目が見えないので、参考URLなどを張っていただく際は、どうか、テキスト情報が多いものを張ってください。 よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- grumpy_the_dwarf
- ベストアンサー率48% (1628/3337)
補足質問への回答です。 =max(index((範囲<>"")*row(範囲),0))に現れる「範囲」は、もち ろん同一の範囲を指定します。あなたの場合だとA1:A9ですね。 最終的には、 =indirect("A"&max(index((A1:A9<>"")*row(A1:A9),0)))-max(A1:A9) ですかね。途中に空白があっても大丈夫だし、もしも最後の行が文 字列だったら、ちゃんとエラーになります。あなたが補足に書いた 式は、私の回答のindirect関数を使う話が反映されていないので不 十分ですし、0の位置が間違ってて動作しません。 では、よい正月を。
- hallo-2007
- ベストアンサー率41% (888/2115)
過去スレですが、参考になると思います。 http://oshiete1.goo.ne.jp/qa4260158.html
- grumpy_the_dwarf
- ベストアンサー率48% (1628/3337)
シンプルにやるのは難しいですね。たとえば、 =max(index((範囲<>"")*row(範囲),0)) これで範囲内の「空白でない」一番下のセルの行番号が返ってきま す。途中に空白があっても大丈夫なことは確認済み。あとは、範囲 がA列だと分かっているならindirect関数で=indirect("A"&…と繋 いでやりましょうか。 式の中に同じ範囲が二回出てくるのが不満です。
{=INDEX(A1:A9,MAX((A1:A9<>"")*ROW(A1:A9)))} (配列数式)
補足
えっと、maxとindexの組み合わせですね。 前に出てくる範囲と、後ろの範囲は同じ範囲でいいのですか? またこのような式は可能ですか? =max(index((a1:a9<>""),0,*row(a1:a9)))-max(a1:a9) 範囲内にある、データの最後の値から、最大の値を引くということをしたいのですが。