エクセル関数で最初の900以上の数値を取得する方法

このQ&Aのポイント
  • エクセルの関数を使用して、特定の条件を満たす最初の数値を取得する方法について質問です。
  • 具体的には、B列とC列にある数字の中から、D1に指定した値以上の最初の数値をE1に求めたいです。
  • わかる方がいましたら、教えていただけると助かります。よろしくお願いします。
回答を見る
  • ベストアンサー

エクセル関数について

質問なんですがよろしくおねがいします。   A      B      C           D           E 1      753      487      例900       例994 2      15      887 3      699      573 4      827      495 5      797      345 6      994      203 7      300      95 8      481      710 9      379      416 10      893      956 11      585      134 12      877      702 13      100      311 14      954      679 15      317      24 上のB,C列の不規則な2列の数字の中から  例えばD1に900と入力したらB2、C2から下に同時に探していって   900以上の最初に合った数値をE1に求める方法がわかりません。  わかる方がいましたらご教授の程よろしくお願いします。 

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

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

E1に =INDIRECT(TEXT(MIN(IF(B1:C15>=D1,ROW(B1:C15)*10+COLUMN(B1:C15))),"!R0!C0"),FALSE) と記入して,コントロールキーとシフトキーを押しながらEnterで入力してみます。

tackty
質問者

お礼

エラー表示がでてしまうのですが なにがいけないんでしょうか?

その他の回答 (3)

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

>エラー表示が出た 回答した通りに出来ていません。ちゃんとやれば出来ますので,もう一度回答をよく読んで, ○あなたが自分で書いたご相談通りに自分でもサンプルを作ります。 ○寄せられた回答通りに数式や手順を行います ○ちゃんと出来ることを確認してから,実地のデータにやり直します。 それで,いったいどんなエラーが出たんですか? #VALUEが出たなら,回答したとおりに操作できていません 900と入れて900以上の値がないと#REFが出ます。 他にも入れた数式が間違っていれば,当然エラーになります。 それに一体,具体的にあなたはどんな式を入れたんですか? しばしば,実際のデータは全然違うところに入っているのに回答の式を直しもせずに入れてみたり,実地のデータに合わせたつもりが回答の式を直し間違えて「デキナイできない」と訴えるご相談もよくありますので。

tackty
質問者

お礼

先程の数式でできてました。 言われたとおり入力ミスをしていました。 すみません。 本当に助かりました。 ありがとうございます。

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

普通の技量ではなかなかむつかしい課題でしょう。 配列数式という仕組みを使うなど必要。 (数式配列を使わない方法があるかもしれないが) データが2列に亘っている点も難しくしている。 既に出ているご回答も相当熟練者で無いと思いつかない、理解できないのでは。 そこで、簡単なVBAを使うがユーザー関数を作る。 Googleででも「VBA ユーザー定義関数」で照会して記事を読んでください。 ーー 理屈そのものは、単純に1セルずつ順次、D2より大かどうか聞いているだけ。 これもなじみが無い、ということなら本回答は無視してください。 VBE画面で標準モジュールに ーーー Function fst(a, b) For Each cl In a If cl > b Then fst = cl Exit Function End If Next End Function ーーー D2セルに =fst(B2:C16,D2) と入れる。 結果 994 ーーー ただし2列のセル範囲をZ字状に順次探索していく。

tackty
質問者

お礼

ご回答ありがとうございました。 VBAはできないので勉強して理解したいとおもいます。 ありがとうございました。

noname#204879
noname#204879
回答No.2

配列数式とか「!R0!C0」が理解できない人のために、“原始的な”方法を紹介します。 添付図参照 1.セル I2 に式 =OR(B2>=D$1,C2>=D$1) を入力   (セル I1 は空白のまま) 2.次の条件で[フィルタオプションの設定]を実行    抽出先    “指定した範囲”    リスト範囲  $B$1:$C$100    検索条件範囲 $I$1:$I$2    抽出範囲   $G$1:$H$1 3.セル E2 に式 =IF(G2>=D1,G2,H2) を入力

tackty
質問者

お礼

ありがとうございます。 その方法でできたのですが D1以下に数値を入れた時も 同様にE列に表示はできないでしょうか? データが1000行くらいあるので対処しきれません。 よろしくお願いします。

関連するQ&A

  • エクセル2007関数

         A   B    C     D E 1   15  20  300 2   21  22  400 3   34  31  452 D1に、A列の数字のいずれかを入力すると、 E1に、A列のいずれかの数字を入力した行のC列の数字を表示させたい。 たとえば、 D1に、21と入れると、E1に400と D1に、34と入れると、E1に452と 表示させたいのですが、 関数は、ありますでしょうか?

  • Excelの関数で教えてください

    添付画像のような表があり、E列の「金額」欄は基本的にはB列×D列の乗算の結果を表示させるので、それだけなら例えば2行目なら「B2*D2」で良いのですが、D列が空欄だったり、B列・D列とも空欄になる場合があって、E列のみに数値を記入するケースがあるため、E列に数式を設定するとイレギュラーで数値を入力できないため、その場合、隣のF列に代わりに入力すると、E列に表示が出るようにしたいと考えています。 C列は単位が入ります(○本、○ケース、○式等) まとめますと、 E列に表示される数値は B列とD列それぞれに数値がある場合はB列×D列の結果を表示 B列に数値があり、D列に数値がない場合はF列に入力した数値を表示 B列にもD列にも数値はなく、F列に数値がある場合はF列に入力した数値を表示 B列、D列、F列のいずれにも数値がない場合はブランク というような数式をE列に設定する場合、どういうような数式にすればいいのか、ご教示いただけないでしょうか? 以上、よろしくお願いいたします。 ちなみにExcel2010または2003で使用します。

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

    エクセルのIF関数について質問をさせて頂きます。 現在、下記のような条件で抽出できる式を考えているのですが、 中々思うような式が思い浮かびません。 例えば、     A列  B列  C列  D列 1行目  111 2行目  222 3行目  333 4行目  444 5行目  555 6行目  666 7行目  777 8行目  888 9行目  999 上記のようなシートがあったとして、     A列  B列  C列  D列 1行目  111       999 2行目  222       333 3行目  333   ○   123   × 4行目  444 5行目  555 6行目  666 7行目  777 8行目  888 9行目  999   ○ 上記のように、例として C列の1行目に「999」と入力した場合、A列の9行目に「999」の数字があるので、その横のB列に「○」 C列の2行目に「333」と入力した場合、A列の3行目に「333」の数字があるので、その横のB列に「○」 C列の3行目に「123」と入力した場合、どこにも該当番号がないので、入力したC列の横、即ちD列の3行目に「×」を表示 要は、A列のどこかに該当数字があった場合にはその数字の横(B列)に「○」、どこにも該当数字が無い時には、入力した数字の横、D列に「×」を表示するような数式を考えています。 IF関数を使えばできるような気がするのですが、色々と試してみても中々うまくいきません。 下手な説明で分かり辛いかもしれませんが、どなたかご存知の方がいましたら、ご教授の程頂ければ幸いです。 どうぞ宜しくお願い致します。

  • エクセルでの連番の処理

    お世話になります。 1行目に入力されたデータをルールに沿って2行目以下にどんどん追加していきたいと思っています。 まずD1、E1のセルに数字を入れます。 例:D1に3、E1に25 を入れてマクロを実行するとD列の2行目以下に3,4,5,6…25と連番で入力出来るようにしたいのです。 この例ではD列は24行目まで入力されています。そこで2行目から24行目までのA,B,C列にはそれぞれ1行目のA,B,C列と同じデータを入力します。なおA,B,C列は数字、文字列どちらもあります。空白の場合もあります。 この状態でA~E列の1行目のデータを変更し、仮にD1を2、E1を15としたとします。ここで再度マクロを実行すればD25に2、そして順に連番が入りD38に15が入るようにします。 同時に25行目から38行目までのA,B,C列にはそれぞれ1行目のA,B,C列と同じデータを入力します。 これの繰り返しです。 つまり2行目以下のD列で空白の行以下にどんどん連番を入れていく具合です。 前提としてD1、E1は整数しか入りません。またE1の数字はD1より大きいです。ただD1,E1に同じ数字が入った場合、その数字の1行分だけが入力されるようにします。 以上の処理が自動化できるマクロはできますか? アドバイス願います。

  • エクセル関数の質問

    よろしくおねがいします。 以下のようなA列B列に数字が何行もあるのですが、 A列の数字(時間なのですが)を二つを別シートに記入すると A列の二つ分の期間を参照してB列の数字の合計や個数を計算したいのですが、 VLOOKでは期間分の値を計算できないので 何かいい方法はないでしょうか? A        B 1000      1 2000     -5 3000      8 4000      1 5000      3 6000      5 7000     -3 8000      2 9000      3 別シートにA列の数字を下記の例のよう二つに入力すると A列の期間を参照してB列の値を計算して B列に全合計 C列に+の合計 D列に-の合計 E列に+の個数 F列に-の個数 を表示させる。 <例1> A   B(全合計) C(+の合計) D(-の合計) E(+の個数) F(-の個数) 1000 5000  8        13        -5         4        1 <例2> A   B(全合計) C(+の合計) D(-の合計) E(+の個数) F(-の個数) 6000 9000  7        10        -3         3        1 のような感じで計算したいのですが わかりづらくてすいませんが、分かる方がいたらご教示お願います。

  • エクセルでの関数

    エクセルで下記を行いたいのですが、関数でどのようにすれば良いでしょうか。(関数で困難であればVBAでも良いです) A列で同じ名称の分に対して、それと同じ行のD列とE列の数値の合計を それぞれのセルに表したいのですがどのようにすれば良いでしょうか? 例えばA6に北海道のD列E列合計106.5、A7に岩手のD列E列合計16.5、 A8に山梨のD列E列合計29を表したいです。   A    B   C   D  E 1 北海道 文章A 数値1  2 24.5  2 北海道 文章B 数値2  4  50 3 北海道 文章C 数値3  6  20 4 岩手  文章D 数値4 11.5  5 5 山梨  文章E 数値5  25  4

  • EXCELのデータベース利用について(VBA)

    VBA初心者の者です。 下記の様なEXCELファイルを作りたいのですが、どのようにすれば良いのか まったくわかりません。 ACCESSでの構築が簡単なのかもしれませんが、データ量がそれほど多くないことと 職場にACCESSがないため、可能であればEXCELで構築したいと考えています。 私自身、プログラムの知識がなく、EXCEL VBAのサイトを確認するのですが、いまいち どうすれば良いのかわかりません。 ぜひご教授の程よろしくお願いします。 3つのシートの構成は以下になります。 【入力シート】 A1セルに文字列(A~Z)入力欄 【○○データシート】 A列に A~Z の文字列 B列に 001~100までの数値 C列に 001~100までの数値 D列に 001~100までの数値 E列に 001~100までの数値 例)    A列   B列   C列   D列   E列 1   A   001 2   B   001    002    003   004 3   C   003 4   D   002    003 【▽コマンドシート】 A列に 001~100までの一意の数字 B列に 文字列(コマンド) C列に 文字列(コマンド詳細) 例)    A列    B列    C列 1   001   xx     blank 2   002   xxx△   xxx 3   003   xxxx    x○ 4   004   xxxxx   xxx 【欲しいVBA】 1、入力シートのA1セルに○○データシートのA列に該当するA~Zの 文字列を入力。 2、○○データシートのB列~F列までの数値を参照 3、2の数値において▽コマンドシートのA列に記載ある番号と紐づけを行い、 ▽コマンドシートのB列、C列に記載がある文字列を入力シートのB列、C列にコピー ※コピー時は▽コマンドシートの書式や体裁情報も含めてコピー。 例としては以下になります。 入力シートの A1セルにDを入力した場合は 入力シート    A列    B列    C列 1   D    xxx△  xxx 2        xxxx    x○ 3 以上、ご教授よろしくお願いします。

  • エクセル(関数)について、教えて下さい

    写真のようにA列に日付が入力してあり、B列に数字を入力します。 B列に入力した数字の日付を、C列の表内に表示させ、D列にはB列に入力した数字を表示させたいと思います。 どのようにしたら良いのでしょうか。 よろしくお願いします。

  • エクセルの計算式が分かりません

    調べてもわからないので、教えて下さい。 今エクセルを開いています。 A列には、数値を入れるとパーセンテージで表示されるようになっています。 B列にはA,B,C,D,Eのどれかを入力するようになっています。 ちなみにこれは会社の評価シートで、A=100、B=80, C=60, D=40, E=20という数字に対応しています。 ここで、B列にたとえばCと入力されたら、B列にそのままCと 表示されるのではなく、A列の数値×60点(Cの評価点)という 掛け算の結果を表示させることは可能でしょうか? 分かりづらくてすみませんが、よろしくお願いします。

  • エクセル(excel)の計算式(関数)について

    エクセル(excel)の計算式(関数)でよいアイディアがありましたら教えてください。 1行目は項目行です。 セルA1から右に15列=セルO1まで、 a | b | c | d | e | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 と入っています。 2行目からデータとして、 セルA2から右に5列=セルE2まで、 4 | 2 | 2 | 1 | 1 と入力したとします。(データ例(1)) あるいは、 セルA3から右にセルE3まで、 6 | 3 | 0 | 0 | 0 と入力したとします。(データ例(2)) 1つのデータの5個の数字のルールは2つで、 「合計で10以下である。」 「左から順に小さくなるか、同じ数字となる。」 です。 (目的は、) このとき、F列からO列にかけて、 データ例(1)のケースでは、 a | a | a | a | b | b | c | c | d | e データ例(2)のケースでは、 a | a | a | a | a | a | b | b | b | と表示されるように、 つまり、項目行の下にある数だけ、その列の1行目の記号を 1(F列)から右に向かって順に埋めていくような、 F列からO列までの2行目以下に入れる適当な計算式(関数)は ないでしょうか。 拙い説明で申し訳ありません。どなたかよい考えをお持ちの方がいらっしゃいましたらと存じます。 どうぞよろしくお願い致します。

専門家に質問してみよう