エクセルで選択範囲の下からn番目のデータを取得する方法を知りたいです。 例えば、A列に数値が100行入ってる場合に

Excel | Office系ソフトウェア206閲覧xmlns="http://www.w3.org/2000/svg">100

ベストアンサー

1
画像

1人がナイス!しています

◆参考までに、途中に空白がある場合の下から3つ目 =LOOKUP(10^10,A1:INDEX(A:A,MATCH(10^10,A1:A100)-2))

画像

ThanksImg質問者からのお礼コメント

皆様ご回答ありがとうございました。 無事動作出来ました! いずれの方も動作出来ましたが、最初にいただいたご回答をベストアンサーとさせていただきました。 ありがとうございました。

お礼日時:1/23 12:37

その他の回答(6件)

1

関数で実現するのは、無理じゃナカンベカー、と思ってます。 ただし、選択範囲に(例えば range という)名前を付けておけば、 =OFFSET(INDIRECT(CELL("address",range)),ROWS(range)-2,) で如何かと。事前の名付け策は駄目よダメダメですか。(*^_^*) 最初から「50~80行目までの範囲」と分かっているなら最下行は80(行目)だから、式 =OFFSET(A1,80-2,) が求める値になるンだけど、これじゃ駄目よダメダメ? 式とスカートは短いのがお好きなら =INDEX(A:A,80-1) の方が1文字分短いか。(^_^)

1人がナイス!しています

1

「選択範囲の中で」ということなら関数ではできません。 VBAでこのように書きます。 Selection(1).Offset(Selection.Rows.Count - 2, 0).Value 仮にB1に値を書き出すとしたら Option Explicit Sub test() Cells(1, 2).Value = Selection(1).Offset(Selection.Rows.Count - 2, 0).Value End Sub

1人がナイス!しています

1

=INDEX(A:A,IF(B3,B2-B4+1,B1+B4-1)) B1に50(指定行数の少ない方) B2に80(指定行数の多い方) B3に1(0なら上から、1なら下から) B4に2(何番目か) こんな感じですかね?

1人がナイス!しています

2

回答方法は様々ありますが、質問の文章を数式にすると =INDEX(A:A,SUMPRODUCT(LARGE(ROW(50:80),2))) でしょうか。 A列の数字が何行目から始まっていて何行目まであってもA列全体からINDEX関数で検索します。 選択範囲の行から、下から2番目ならLARGE関数で2を、上から2番目ならSMALL関数で2を指定し、INDEX関数の行番号とします。

2人がナイス!しています