• ベストアンサー

ある数値を始めて越えた時の値が知りたいです。

A列に以下のような数値があります。B1セルに、初めて2.00を越えた時の値を表示させたいのですが、 どのような方法があるでしょうか?(下では2.10が欲しい数値です) 2を越える一つ前なら以下の関数で出来ました。 =VLOOKUP(2,A:A,1,TRUE) 1.36 1.48 1.61 1.86 1.97 2.10 2.22 2.35 あと、下の数列のように、上の行に2より大きな数字があると、VLOOKUP関数だけだと一つ前すらも求めることが出来ません。 表示させたいのは、『一つ上のセルが2より小さく、初めて2.00を越えた時の値です。』 4.19 3.39 2.68 2.08 1.65 1.36 1.48 1.61 1.86 1.97 2.10 2.22 2.35 関数だけで駄目であればマクロでも構いません。良い方法が無いでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.1

1回以下の出現なら、 下記関数。 これを適当なモジュールに貼り付けて、ユーザー定義関数として使う。 Function to2(sel As Range) r = sel.Row For Each c In sel If c.Row <> r Then If c >= 2 Then If Cells(c.Row - 1, c.Column) < 2 Then to2 = c Exit Function End If End If End If Next End Function

sqhere
質問者

お礼

私の思っていた通りのことが出来、大変満足です。 大変有難う御座いました。

その他の回答 (2)

  • maac777
  • ベストアンサー率50% (43/86)
回答No.3

作業列の使用が可能なら(仮にD列とします)D2に =IF(A1<2,IF(A2>=2,A2,""),"") とし、データのある行数分オートフィル。B1に =MIN(D:D) で可能です。

  • jo-zen
  • ベストアンサー率42% (848/1995)
回答No.2

C2 =IF(A1<2,IF(A2>2,1,0),0) D2 =IF(C2=1,A1,0) とし、2行以降にもコピーすると、求める答えのC列に1、D列にその数字が表示されるので、vlookup関数を用いるなどして、B1セルにD列のその数字を表示させる方法があります。D列のsum や max では循環参照になってしまいうまく、B1に答えを表示できないようです。

関連するQ&A