• ベストアンサー

エクセルの表から条件にあった数字が入力されているセルの行数を抽出する

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

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

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

関数でも出来るのかもしれないが、ユーザー関数を作るのか簡単なので紹介する。順次のセル指定を行方向に進めてくれるので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 14 15 12 16 13 21 15 9 10 4 4 21 E1 に 8 ーーー シートで空きセルに =Fsmall(A1:C4,E1) と入れる 結果 4(行目の4がこれを決定) === ●配列数式利用 =MIN(IF(A1:C4<$E$1,ROW(A1:C4),99)) と入れてSHIFT,CTRL,ENTERの3つのキーを同時押し(配列数式) でも出来そうなのだが、少数のテストしか出来てない。

blackleon
質問者

お礼

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

blackleon
質問者

補足

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

その他の回答 (2)

  • maron--5
  • ベストアンサー率36% (321/877)
回答No.3

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

blackleon
質問者

補足

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

  • higekuman
  • ベストアンサー率19% (195/979)
回答No.1

やりたいこととは違うのですが・・・ 条件付き書式で、E1より小さいデータすべてに色をつけるのではダメですか?

blackleon
質問者

お礼

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

関連するQ&A

  • 【エクセル】セルに入力された数字の行数だけ印刷するには?

    いつも利用させていただいています。 A1のセルに「3」「5」など数字を入力して 印刷ボタンを押すと 数字の行数分だけ印刷することは可能なのでしょうか? 【イメージ】     A列   B列 1行目 3 2行目 商品A 1万円 3行目 商品B 2万円 4行目 商品C 2.5万円 5行目 商品D 3万円 6行目 商品E 5万円  ※1行目(セルA)で出力したい行数を指定  ※2行目以降は商品情報が記載されている  ※このケースだと「3」とA1に入力されたので、   行数が入力された1行目と商品情報を頭から3行分(印刷範囲A1~B4)まで印刷。   もし「5」と入力されたらA1~B6まで印刷したい。 行を表示・非表示したり、印刷範囲を指定したりすればできるのだと 思いますが・・・このファイルの利用者によって出力が必要な行数が異なり、 年配の方々に印刷範囲の指定をしていただくのが難しくて 困っています・・・。 どなたかご存知の方、よろしくお願いいたします!!

  • 表のある番号のものだけ抽出する

    ------ 01|a|あ ------ 01|b|う ------ 01|c|お ------ 02|d|き ------ 02|e|け ------ 上記のような表があったとします。 別のシートの、とある一箇所に例えば「02」と入力すると、 --- d|き --- e|け --- と、出るような表を作りたいと考えています。 それぞれ「d」「e」「き」「け」と入力されている部分には どのような式を入力すればいいでしょうか。 もちろん「01」と入力したら、以下のように出るようにしたいです。 --- a|あ --- b|う --- c|お --- 元となるデータの行は1000行くらいで、 抽出したい行数は最小で1行、最大で20行くらいです。 よろしくお願いいたします。

  • エクセルで数字が入ったセルの値を抽出

    任意1行中のある1列にFALSEと1列だけ数字が入っています(下図参照)。その数字を抽出する関数があれば教えて下さい。 下図の例では、Fの列にB2:E2の範囲の数字「10」を抽出したいのです。マクロを組めば可能なのですが、セルに入力する関数等で簡単に実現できればと思います。 アドバイス宜しくお願いします。

  • 表の中でもっとも多く使用されている文字(数字)を抽出するには

     |A|B|C|D| -------------- 1|あ|い|う|え| -------------- 2|お|あ|あ|か| -------------- 上記は1行目に左から「あ」「い」「う」「え」が入力されていることを表しています。 この表の中から、一番多く入力されている文字だけを別のセルに抽出させるにはどのようにしたら良いでしょうか。 上記の例を使用すると、A列の5行目(任意のセル)に「あ」と抽出するようにしたいです。 いろいろと調べてみましたが、このように表の中で最も多く入力されている、「文字」または「数字」だけを抽出するという処理方法がみつかりませんでした。 マクロなら可能でしょうか? このような処理ができる関数もなさそうなので、無理なのかな。 アドバイスを御願い致します。

  • エクセルで複数の表を1つにまとめたい

    エクセルの関数を使って複数の表を1つにまとめたいのですが、どのようにしたらいいのでしょうか? 写真のように元の表の行数がばらばらなので、2行の場合、3行の場合、実際は25行まであります。 その行数を自動で判断しながら、つめて表示させる方法がどうしても思いつきません。 つなみに、元表は文字ではなく関数で表示させています。 よろしくお願いします。 http://jisaku.155cm.com/src/1371017049_05bcb820db96bd8ddfc5e4689a9040a280830641.jpg

  • Excelセルに条件付きの日付を入力したい

    B列5行目の日付を入力したときD列5行目の数字とその上の行にある数字が一致した右隣E列と日付の差が5日以上経過していればC列5行に"ー"を差が5日未満であればB列の日付に5日を足した日付を順々に入力したいのですがどなたか関数の解る方よろしくお願いします。 因みに環境はoffice2013です。

  • エクセルで、計算で表示された数字を別のセルに入力したい

    よろしくお願いします。 エクセルで、以下のような表を作りました。 Dのセルには計算式が入っています。 【表1】   A B C D   1 2 3 1(計算式C2-C1にて)   2 3 4 1(計算式C3-C2にて)   3 4 5 -5(計算式C4-C3にて)  この表を、Aの行の数値をもとに降順でソートをかけると、  以下のようになり、Dの数値は、元のものと異なってしまいます。 【表2】   A B C D   3 4 5 -1(計算式にて)   2 3 4 -1(計算式にて)   1 2 3 -3(計算式にて)  計算ででた数字を、ソートした後にも表示させる良い方法は  ないでしょうか?  現在は、E行に、直接計算で出た数字を入力しているのですが、  数が多くて大変です(><)  お助けください!m(_ _)m

  • エクセル2002 数字の抽出とグラフの作成

    任意の数字を抜き出してグラフを作成したいのですが可能でしょうか。 棒グラフか何かで数字の頻出度順にしたいと考えています。 そのステップとして(1)表の数字の抽出、(2)グラフ化があると思います。 (1)では関数を使えば範囲内の数字の出現数がわかると思うのですがどれを使っていいのかわかりません。 (2)では他のデータで3列指定してグラフ化すると系列2までしかでません(3行あるので系列3にしたいです)。 よろしくお願いします。

  • Excel のセル内の数字抽出

    セルの中にランダムの数字が入っている状態から、共通する数字を抽出する方法を教えてください。 例    A  B   C  D  E   F  G  H   I 1 228 236 246 258 241 452 785 453 741 2 478 247 236 159 147 236 478 345 236 3 222 223 445 160 401 305 360 236 474 この様な数字が1つのセルの中に入力されていて 1、236という数字がこの表の中にいくつ存在するかを抽出する方法。 2、各行・列を参照して共通する236を抽出する方法。 以上2点についてお願いいたします。

  • Excel 関数で上から順に数字を整列させる

    Excelで、下記表(例)に入力された数字を上から順に関数を用いて隣のB列に整列させたいです。 ・例 A1:A60の表があります。 ※以下A列に入力された数字とします 1 空白 2 20 3 空白 4 15 5 25 ・(省略、この間空白と考えて下さい) ・ ・ 59 10 60 空白 上記表(例)は、A2に20,A4に15,A5に25,A59に10それ以外は空白を表します。 上記表のセル内数字は全て手入力とします。 全てのセルが空白の場合もあります。 B列はB1:B5の5行です。 この入力された数字を関数を用いて、B列に上から順にB1に20,B2に15,B3に25,B4に10,B5は空白となるように整列させたいです。 B列セル結果は他シートに参照されますのでセルはロックを掛けています。 上記のことからデータの並べ替えも使えませんし昇降順でもありません。 上から順に整列させた数字を、B1:B5の5行内で上位5まで表示させます。 A列の行数が多いのでif関数も使えません。 なお、上記質問内に不明な点がありましたら補足させて頂きます。 以上、宜しくお願いします。

専門家に質問してみよう