アプリ版:「スタンプのみでお礼する」機能のリリースについて

A1からD100まで任意の数字が入力されている表があります。
E1にある数字を入力したとき、A1からD100までの表を1行目から順に、2行目、3行目と検索していき、E1の数字よりも小さな数字がはじめて出てきた行数をE2に自動的に入力するようにしたいのですが、関数を使ってそのようなことは可能でしょうか。

A 回答 (3件)

やりたいこととは違うのですが・・・



条件付き書式で、E1より小さいデータすべてに色をつけるのではダメですか?
    • good
    • 0
この回答へのお礼

実は、E2の数字はまた別のセルの関数でで利用しようと考えておりますので、色ではうまくいきません。
でも、アイデアをありがとうございました。

お礼日時:2008/05/17 15:42

関数でも出来るのかもしれないが、ユーザー関数を作るのか簡単なので紹介する。

順次のセル指定を行方向に進めてくれるのでFor Eachがお誂え向き。
標準モジュールに下記をコピペ。
Function Fsmall(a, b)
Dim cl
For Each cl In a
If cl < b Then
Fsmall = cl.Row
Exit Function
End If
Next
End Function
ーー
例データ 
A1:C4
141512
161321
15910
4421
E1 に 8
ーーー
シートで空きセルに
=Fsmall(A1:C4,E1) と入れる
結果
4(行目の4がこれを決定)
===
●配列数式利用
=MIN(IF(A1:C4<$E$1,ROW(A1:C4),99))
と入れてSHIFT,CTRL,ENTERの3つのキーを同時押し(配列数式)
でも出来そうなのだが、少数のテストしか出来てない。

この回答への補足

ご回答ありがとうございます。
ユーザー関数というのははじめて知りました。
自分のデータで確認してみたところ、どうもうまくいかないようです。
配列数式のほうについても確認してみます。

補足日時:2008/05/17 15:35
    • good
    • 0
この回答へのお礼

確認してみたら、お示しいただいたユーザー関数を用いる方法でうまうできました。ありがとうございました。

お礼日時:2008/05/18 22:52

E2=LARGE(INDEX((A1:D100<E1)*ROW(A1:A100),),COUNTIF(A1:D100,"<"&E1

))

この回答への補足

ご回答ありがとうございました。
いま少し確認させていただいたのですが、うまく抽出されないようです。もしよろしければ、式の意味など教えていただけるとありがたく思います。

補足日時:2008/05/17 15:31
    • good
    • 0

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