- ベストアンサー
エクセルの関数(最後の値を返す)
A1からJ65までの範囲のなかで (計算式などが入ってるセルも含まれてます) J列の最後に表示されている値を返したいのですが どんな計算式をしていいか 調べてもわからず困っています。 J35のときもあればj40のときもあります。 ちなみにJ列にはすべて 計算式がはいってます。 その計算結果が表示されているセルと空白のセルがあります。 (J1からJ40まで値表示J41からしたは空白表示のときJ40を返したい このときA列はA1からA40までは値が入力されてますがA41からしたはまったくの空白です)
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
計算結果が数値なのであれば =INDEX(J:J,MATCH(MAX(J:J)+1,J:J,1)) でJ列の最後に表示されている値を返します。
その他の回答 (4)
- imogasi
- ベストアンサー率27% (4737/17069)
>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") のように入れると良い。
- popuplt
- ベストアンサー率38% (31/81)
J列の計算結果がわからないので >A40までは値が入力されてますがA41からしたはまったくの空白 を利用して1案。 =INDEX(J:J,COUNTA(A:A))
- Cupper
- ベストアンサー率32% (2123/6444)
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) こんなでどうでしょう
次の式を試してください。 =INDIRECT("J"&COUNT(J:J))
お礼
循環されて うまくできませんでした。
お礼
ありがとうございます。 できました!!