プロが教えるわが家の防犯対策術!

Excelの表の中で、範囲内の最後のデータ、例えば、a1:a9のうち、a3:a5だけにデータがあるとき、a5のデータを取得したいとき、どんなふうに関数を入力すればいいですか?
始まるセルも、終わりのセルも一定でない場合を想定しています。
ここでいう最後とは範囲内のもっとも下のデータという意味です。
やりたいことは分っても関数名も組み合わせ方も分りません。

例えば、データがある、範囲を特定し、その範囲の最後のセルのセルを返してもらうでもいいかもしれません。
目が見えないので、参考URLなどを張っていただく際は、どうか、テキスト情報が多いものを張ってください。
よろしくお願いします。

A 回答 (4件)

補足質問への回答です。



=max(index((範囲<>"")*row(範囲),0))に現れる「範囲」は、もち
ろん同一の範囲を指定します。あなたの場合だとA1:A9ですね。

最終的には、

=indirect("A"&max(index((A1:A9<>"")*row(A1:A9),0)))-max(A1:A9)

ですかね。途中に空白があっても大丈夫だし、もしも最後の行が文
字列だったら、ちゃんとエラーになります。あなたが補足に書いた
式は、私の回答のindirect関数を使う話が反映されていないので不
十分ですし、0の位置が間違ってて動作しません。

では、よい正月を。
    • good
    • 4

過去スレですが、参考になると思います。


http://oshiete1.goo.ne.jp/qa4260158.html
    • good
    • 2

シンプルにやるのは難しいですね。

たとえば、

=max(index((範囲<>"")*row(範囲),0))

これで範囲内の「空白でない」一番下のセルの行番号が返ってきま
す。途中に空白があっても大丈夫なことは確認済み。あとは、範囲
がA列だと分かっているならindirect関数で=indirect("A"&…と繋
いでやりましょうか。

式の中に同じ範囲が二回出てくるのが不満です。

この回答への補足

えっと、maxとindexの組み合わせですね。
前に出てくる範囲と、後ろの範囲は同じ範囲でいいのですか?

またこのような式は可能ですか?
=max(index((a1:a9<>""),0,*row(a1:a9)))-max(a1:a9)
範囲内にある、データの最後の値から、最大の値を引くということをしたいのですが。

補足日時:2008/12/30 17:48
    • good
    • 1

{=INDEX(A1:A9,MAX((A1:A9<>"")*ROW(A1:A9)))}


(配列数式)
    • good
    • 2

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A