あなたの習慣について教えてください!!

A1からJ65までの範囲のなかで (計算式などが入ってるセルも含まれてます)
J列の最後に表示されている値を返したいのですが どんな計算式をしていいか 調べてもわからず困っています。

J35のときもあればj40のときもあります。
ちなみにJ列にはすべて 計算式がはいってます。
その計算結果が表示されているセルと空白のセルがあります。
(J1からJ40まで値表示J41からしたは空白表示のときJ40を返したい
このときA列はA1からA40までは値が入力されてますがA41からしたはまったくの空白です)

A 回答 (5件)

計算結果が数値なのであれば


=INDEX(J:J,MATCH(MAX(J:J)+1,J:J,1))
でJ列の最後に表示されている値を返します。 
    • good
    • 21
この回答へのお礼

ありがとうございます。 できました!!

お礼日時:2009/04/13 08:52

>A1からJ65までの範囲のなかで 


とか、質問が複雑に書いているが
ーー
●関数は「セルの値」しか、判別したり、計算に利用することしか出来ない。セルの数式などはn判別できない。
●キーボード入力した値も、関数で導出された値も、未入力の空白も
「セルの値」としては区別する必要はない(区別する問題なら、また別に難しい問題だ)
ということが、質問者には良くわかってないようだ。
ーー
J列(のセル範囲)で空白でないセルのうち行番号の一番大きなセルの行番号を求める
というのがこの質問になるのかなと思う。
=MAX(IF(J1:J65<>"",ROW(J1:J65),0))
と入れて、SHIFT+CTRL+ENTERを3つ同時押し。
配列数式
またはVBAで関数をつくり
標準モジュールに
Function saikag(a)
saikag = Range(a & "65").End(xlUp).Row
End Function
セルに=saikag("J")
のように入れると良い。
    • good
    • 1

J列の計算結果がわからないので


>A40までは値が入力されてますがA41からしたはまったくの空白  
を利用して1案。
=INDEX(J:J,COUNTA(A:A))
    • good
    • 2

COUNT関数!


ダメですか?

COUNTA関数は空白でも数式が入力されているとカウントします
ですので
 COUNT(J*J)
これで【データが表示されている】セルを数えることができます
データが行方向に連続して表示されているのであれば、これを
INDIRECT関数や INDEX関数、OFFSET関数などで
セルを示す値に直せばOK
 INDIRECT("J"&COUNT(J1:J65))
 INDEX(J1,J65,COUNT(J1:J65),1)
 OFFSET(J1,COUNT(J1:J65)-1,0)
など

空白になる行が間にあるのであれば、上記の方法では無理
作業用の列を設けてください
その列には空白でないセルの数を1行目からその行まで数えた数値を返すようにします
作業列の最大値がJ列の一番最後の行に表示されます
例:I列を作業列とした場合
 I1=COUNT(J$1:J1)
 これをI65までコピーする
 VLOOKUP関数で I列の最大値を検索して J列の値を読み取る
 VLOOKUP(MAX(I1:I65),I1:J65,2,FALSE)

こんなでどうでしょう
    • good
    • 3

次の式を試してください。



=INDIRECT("J"&COUNT(J:J))
    • good
    • 0
この回答へのお礼

循環されて うまくできませんでした。

お礼日時:2009/04/13 08:53

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

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


おすすめ情報