• ベストアンサー

エクセル関数を使った特殊検索

エクセルの表に数字が縦にランダムに並んでいます。 数字の大きさは6000~12000です。 このとき、並んでいる数字の中で7000以下の数字で、且つ行列番号が一番若い(表の上にある)数字を検索したいのですが、エクセルの関数だけで可能でしょうか? バージョンは2003です(WINXP)

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

  • ベストアンサー
  • Poer
  • ベストアンサー率45% (72/157)
回答No.1

 最善の方法かどうかはわかりませんが、以下の方法で結果は出ます。  数字データがB1から入っているとして、   (1)・・・A1に =IF(B1<=C$1,1)   (2)・・・D1に =IF(ISERROR(VLOOKUP(1,A:B,2,0)),"",VLOOKUP(1,A:B,2,0))   (3)・・・(1)を数値データの最終行までオートフィル。   (4)・・・A列の幅を0(ゼロ)にする。  →C1に7000を打つと、D1に結果が表示されます。

その他の回答 (3)

noname#63022
noname#63022
回答No.4

a1~a100 まであるとして =index($a$1:$a$100,match(true,(a1:a100)<=7000,0),) 入力しshift +ctrl +enter を同時に押し { 数式} 配列数式にしてください。

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

関数の難しいのと違って、上の行から30(質問の場合7000)と比較していって、初めて30を下回るものがあれば、 その行の値を返し、そこで作業を打ち切り、と考えるとおりに組めます。すなわち エクセルのユーザー関数を定義します。 ツール-マクロ-VBE,の画面で、挿入ー標準モジュール そこに Function uu(a, b) For Each cl In a If cl < b Then uu = cl Exit Function End If Next End Function を貼り付けます。 シートのセルに たとえば =UU(A1:A15,30) と入れます。 意味は、A1:A15のセルなかで、上の行から調べて、初めて見つかる30より小のセルの数字を返します。 「30以下など」ならIf cl <= b Then にします。

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.2

上記がA列として =INDEX($A$1:$A$5000,SUMPRODUCT(MIN(ROW($A$1:$A$5000)*100000^($A$1:$A$5000>7000))),1) ※行の範囲はすべてご使用の範囲に合わせてください。

関連するQ&A

  • エクセル関数

    エクセルでマッチングした数字の場所までカーソルを移動する関数はありますか。例えば177という数字をある表(例えばC列にランダムに数字が羅列されている表)に177があればその位置までカーソルを移動する関数

  • excel 関数を探しています

    エクセルを使っていて、縦に数字が 0 1 空きセル 2 3 4 空きセル ・ ・ のように続くことがあり(空きセルの位置はランダムです)、数字が何連続したのかということが知りたく、を関数でぱっと出せないのかと思っております。 どなたかご存じの方がいらっしゃいましたら教えていただきたいです。言語化が下手ですみません。

  • エクセルの関数の計算式について教えてください。お願いします。

    エクセルの関数の計算式について教えてください。お願いします。   A B C D E F G H I J 1 8 6 3 2 5 10 9 4 1 7 2 16   19       13 3 4 1 3 7 2 8 6 10 9 5 4 5 20 19 18 17 16 15 14 13 12 11 上のようなエクセルの表があります。1の行にランダムに数字が入ります。たとえばG1に9が必ず入るわけではありません。毎回違います。 4の行も同じようにランダムで数字が入ります。 そこで1の行に入った数字が4の行の同じ数字を感知してその下の5の行の数字が2の行に来るようにしたいのですが。どうにかなりませんでしょうか。 一応例をかきましたが、1の行の8があります、4の行にも8があります、4の行8の下に16のがあります、その16が、1の行の8の下に来るようにしたいのです。 このような関数式ありましたら教えてください。お願いします 

  • エクセルの検索・関数

    お分かりの方、教えて下さい!! エクセルにて、 A列に13桁の数字がランダムにあり、 C列にも13桁の数字がランダムにあり、 E列には1桁~3桁の数字がランダムにあります。 B列に同じ行のA列の13桁と一致するC列の13桁を見つけ、 そのC列のと同じ行のE列の数字を入れたいのです。 上記の内容が出来る関数を教えて下さい。 分かりにくくてすみませんが、よろしくお願いいたします。

  • Excel検索等関数

    Excelのデータで同じ列の中に番号が重複している値を探し出しなおかつ任意の行数に出す関数はありますか? Sheet1   |Sheet2   A  B |   A  B        1 あ 10 | 1 あ  10 2 あ 11 | 2 あ  11 3 い 21 | 3 い  21 4 う 22 | 4      ←A4:b4は、「い」が2行ないので空白        | 5 う  22        | 6      ←A6:b6も、「う」2行ないので空白 このように、縦の重複したセルを検索して、指定行数内の場合は、空白となる関数式があればお教えください。

  • エクセルの関数を教えて下さい。

    エクセルがまったく分からない初心者です…。 次のような数字の羅列を作りたいのですが関数がわからず困っています。 A列に 000005 000004 000003 000002 000001 000010 000009 000008 000007 000006 000015 000014 …以下略 のような5から始まって数字が4つ減ったところで10になり、また数字が4つ減ったら15になり という表を作りたいのですが、どのような関数を使えば出来るでしょうか…? 分かり易く教えて下さる方、もしくはそんな関数にしなくてもこうすれば出来るという方法をご存じの方、ご教授よろしくお願いします。

  • エクセルの関数について

    エクセルの関数について教えて頂きたいです。 業務でエクセル(2000)で作成してある集計表があります。 その集計表の数値を別BOOKに反映させたいのです。 セルA1を検索値として、セルB1とセルB2の値を返す関数はありますでしょうか? 集計表の行数は約500行、並びはランダムでセルC1を検索値としてセルC2の値を返す 箇所もあります。一つの値を検索値として二つの値を返すことが出来ずに困っています・・・ 宜しくお願いします。

  • エクセル 検索関数教えてください。 

    A列に工事番号をランダムに入力。 別のシートで指定した同じ工事番号の行を全てピックアップしたいです。 VLOOKUPだと全部を検索してくれません。  関数は何を使えばよいでしょうか? お願いします。

  • エクセルの関数について

    Windows Xp エクセル2003を使用しています。 業務で使用している集計表ファイルがあり、別ファイルにデータを反映させたいのです。 集計表のセルA1を検索値としセルB1とセルB2の値を返す関数はないでしょうか? 集計表のつくりは約1000行あり、セルA3を検索値としてセルB3の値を返す行もあります。 セルA5を検索値とし、B5、B6、B7、C5,C6の値を返す行など様々です。 こういったデータがランダムで表になっています。一つの検索値に対して、検索値の水平方向はvlookup関数で表示出来たのですが、 一つの検索値で2つの値を返す関数が分からず、困っています。 1行下や2行下を検索する関数も参考にしたのですが、集計表のつくりがランダムの為、検索してほしくないものまで表示されてしまうなど、ウマクできませんでした。 宜しくお願いします。

  • エクセルの関数で以下のようなのってありますか?

    エクセルの関数で以下のようなのってありますか? A1からK1まで以下の数字が入ってるとします。(左のセル以上の数字が入ります) 1 2 3 4 4 5 5 6 7 7 7 んで、左から検索をしていって、初めて7が現れる行数を関数で求めたいのです。 マクロではなく関数でお願いします。 -- エクセル2003

専門家に質問してみよう