• ベストアンサー

エクセルの数式質問

条件1.)A列の1行目から10行目までのセルに数値が入っているとします。 条件2.)A1からA10までの全てのセルに数値が入っているわけではなく、とびとびで入力されている。 この場合に、A10もしくは、よりA10に近いセルに入力してある数値を返す数式はどのようになるでしょうか? さらに、1~10行目のセル内に数値が何も入っていない場合には、空白を返してほしいのです。 よろしくお願いします。

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

  • ベストアンサー
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.3

次の式でもよいでしょう。 =IF(COUNT(A:A),LOOKUP(10^10,A:A),"")

その他の回答 (4)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.5

ある列でデータの入っている最も下のセルを捕まえるのは、関数では難しい。 (1)LOOKUP関数のある場合のクセを使ってやる方法(既に回答有り) (2)VBAをやるものにとっては、その列の、データ最下行をとらえるコードはよく使うので、それを用いてユーザー関数を作る方法 どちらにしても覚えてないと、1-2日考えても普通の人には(どこかで勉強して無いと)思いつかない。 ーー 後者では、標準モジュールにユーザー関数を作る Function saika(a) saika = Cells(a + 1, "a").End(xlUp).Row End Function 例データ A1:A6 1 2 34 23 ーー  A列以外(またはA1:A10以外のA列)のセルに =INDEX(A:A,saika(10),1) と入れる.。 saikaの10は10行までで(含む10行)最も下のセル、と言う意味にしている。 23の下の行にデータを加えたり、23などを抹消したり、最下行データのセル位置を変えて、テストしてください。 本件はA列に数字以外も入るケースで、数字の最下行となると使えない。  

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.4

一例です。 =IF(COUNT(A1:A10),INDEX(A1:A10,MATCH(MAX(A1:A10)+1,A1:A10,1)),"")

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.2

=IF(COUNT(A1:A10),LOOKUP(MAX(A1:A10)+1,A1:A10),"") などのように。 #しばしば =IF(COUNT(A1:A10),LOOKUP(1E15,A1:A10),"") のような数式でよく回答されますが,「1E15」でひっかかるヒトが多いので上記の式をお奨めします。

  • akiomyau
  • ベストアンサー率43% (555/1280)
回答No.1

以下のような式でどうでしょうか。 =IF(ISERROR(LOOKUP(10^10,A1:A10)),"",LOOKUP(10^10,A1:A10))