• ベストアンサー

エクセル ある数が含まれる範囲を調べ、その隣のセルの数を取得する

聞きたい内容がうまく説明できないので、具体例を書かせていただきます。 下のような表があり、それとは別に1つ数値を入れるセルと結果を表示するセルがあります。 入力セルに例えば105を入れたとき、105は101(A列)~110(B列)の間の数値なので、その行のC列の値である3を結果セルに表示させたいのですが、どのようにすればよいでしょうか。 A列   B列   C列 1 100 0 101 110 3 111 120 2 121 130 5 131 140 2 141 150 2 151 200 3 201 1000 0

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

  • ベストアンサー
noname#204879
noname#204879
回答No.3

  A  B  C D  E   F 1  1  100 0   入力 結果 2 101  110 3   105   3 3 111  120 2 4 121  130 5 5 131  140 2 6 141  150 2 7 151  200 3 8 201 1000 0 F2: =VLOOKUP(E2,A$1:C$8,3)

taro2009
質問者

お礼

ありがとうございます。やりたかった通りのことができました。

その他の回答 (2)

  • agricap
  • ベストアンサー率40% (79/195)
回答No.2

ちょっと・・・補足に書かれた内容の意味がわかりません。 もう少しセルの座標を説明に交えて具体的にお願いします。

taro2009
質問者

お礼

無事解決いたしました。 分かりづらい質問にも関わらず、回答して頂きありがとうございました。

taro2009
質問者

補足

はい、申し訳ないです。 最初の例と少し異なってしまいますが、下のようなシートがあります。 上が36の列がA列、40がB列、10がC列、入力セルがF1、結果セルがF2です。 入力セルに数値Xを入力したとき、A列の数値 <= X <=B列の数値 となる行の、C列の値を結果セルに表示するにはどうすれば良いでしょうか。 例えば入力セル(F1)に58と入力したとき、58は 56(A5) <= 58(F1) <= 60(B5)を満たすため、結果セル(F2)には2(C5)が表示されます。 36 40 10 入力: (ここに入力) 41 45 6 結果: (ここに結果表示) 46 50 5 51 55 7 56 60 2 61 65 5 66 70 1 71 75 3 76 80 6 81 85 4 86 90 3 91 95 4 96 100 0 101 110 3 111 120 2 121 130 5 131 140 2 141 150 2 151 200 3 201 1000 0

  • agricap
  • ベストアンサー率40% (79/195)
回答No.1

条件がよくわからないので、E列が入力セルで各行(1行目、2行目、3行目・・・)に全部入力、さらにF列を結果セルとします。 F1には、 =IF(AND(A1<E1, E1<B1),C1,"") という数式を入力します。(条件に合わない場合は空白とします) F2、F3・・・には、これをコピーします。 もし、入力セルを1つだけにしたい場合(これをE1とする)は、F1に =IF(AND(A1<$E$1, $E$1<B1),C1,"") としてF2、F3・・・にコピーしてください。

taro2009
質問者

補足

回答ありがとうございます。 条件はあってるのですが1つのセルに入力した時に1つのセルに結果を表示したいのです。 後出しになってしまい大変申し訳ないのですが、実際の表は百行程度あり、IF構文のみで場合分けして結果を出す方法は使えず、このような質問をしました。

関連するQ&A

  • 指定範囲の条件に合致する順位

    EXCELのVBAで以下のことをやりたいのですが、分かりません。 アドバイス頂けますでしょうか。 例として、1から40行固定の表があります。A、B、C、D列とあり、 A列は数値が必ず入っているセル(1~40)、 B列は時間のシリアル値で、値が入っているセルと入っていないセルの混在、 C列は文字列で値が必ず入っているセル、 D列は数値で、、値が入っているセルと入っていないセルの混在、という表があるとします。 この時に、 「”Bに値が入っていて、かつ、Dに値が入っていない行”の、”B列のトップ3”の、AとBのデータ」が 欲しいのですがどのようにしたらいいか分かりません。 お願いいたします

  • 数値入力後、隣のセルに結果をマクロで表示したい

    エクセルのある列に数値を入力すると、自動的に隣の列に結果(消費税の金額や、対応する勘定科目など)が表示されるようにしたいです。 例えば、B列、あるいは、1行目をタイトル行にすれば、B2より下のB列に数値を入力していくと、隣のC列に結果が表示されます。 もう少し具体的に例示すると、B2セルに100と入力すると、C2セルに、消費税の金額、8が表示されます。 あるいは、B2に100と入力すると、C3に100に対応する勘定科目が表示されます。 もちろん、C2に=B2*8%という式を入力していてもいいのですが、その場合、事前に式を入力する必要があります。 しかし、B列の何行目まで入力するのかわからないので、事前に式を入力せずに、このようなマクロを記入したいと思います。 また、勘定科目名が表示される場合も、通常であれば、vlookup式をC列に代入し、隣のシートの勘定科目とコードの対応表を参照させますが、同様の理由で、式を事前に入力しないようにしたいと思っています。 イベントプロシージャーでするようですが、どのような変数を使って表示するのかよくわかりません。 宜しくお願いします。

  • Excelの関数について

    Excelの関数について 今表を作っていて 1日数回データを取って それを1ヶ月ぐらい続ける予定で その結果をExcelの表に入力したいと思っています。 A列に現在値 B列に増加分 C列にA+Bの値を入れたいと思っています。 なので、C列には、C1には=SUM(A1,B1)として セルの右下にポインタを合わせて十字で下まで引っ張って関数をコピーしています。 で、そうするとC列に0が表示されてしまい それはなんとか、ツール→オプション→表示→ゼロ値のチェックを外して解決したのですが C列の合計値は次の行のAのセルに表示したくて 例えば C3の数値はそのままA4に C7の数値はそのままA8にといった感じで で、A2のセルに=C1とかA5のセルに=C4とかしたのですが いちいち関数を埋め込むのは面倒くさいので 下のほうまで関数をコピーしたところ 関数が埋め込まれているので A列とB列にしたの方まで同じ数字が表示されています。 これって消すことはできないのでしょうか? 現在は 最初のA1セルだけに数値を入れたのですが関数を埋め込んだことにより A列とB列すべてにA1セルの数値が表示されています。 まだデータを取っていないのでB列は空白です。 ただ、できれば、下の方に数値が表示されないようにしたいんです。 言葉で説明すると A列とB列に数値が入力されない限り、C列の合計値は表示されない設定にできれば 私の言っているような状況になると思うのですが、そういう事はできないのでしょうか… 教えてください。

  • エクセルの使用方法

    エクセルの使用方法で質問があります。 1.あるA列10行に数式が入力されています。その数式はA列9行+B列10行の値です。B列10行に数値を入力する時、C列10行には日付を入力しています。このままだと、B列、C列に何も入力されていない行でも、A列だけは、延々と数値が表示されてしいます。できれば、B or C列に入力していない時は、A列の表示を空白にすることはできないでしょうか? 2.上記のようにA列には、数値が入っており、何行目まで数値があるのかは、B列、C列次第です。この状態で、A列の一番下の行のセルの数値を、固定したセルに表示させる方法はないでしょうか? ただこのシートは複数個作成し、あるシートでは、10行目が一番下だったり、あるシートでは25行目が一番下だったりする条件になります。 またB列にはマイナスの数値も入るので必ずしも行が増える程、A列の値が大きいわけではありません。 3.C列の日付ですが、たとえば「2009/8/8」と入力したら、「2008.8.8」と半角で表示するようにしてるのですが、これを「2008.08.08」と半角で表示する方法はないでしょうか? 4.エクセルで時々、あるセルの左上端が緑色になり<!>と表示されています。この<!>を押すと、いろいろコメントがでてくるのですが、エラーを無視するを選ぶと、消えます。一体これは何なんでしょうか? 出ないようにする方法はないでしょうか? 以上の件、どれでもよいのでご回答くださいますようお願います。

  • Excelの関数について

    [C1のセル値]-[A1またはB1のセル値] を使って計算したい場合の計算式を教えて下さい。 A列、B列、C列には具体的な数値を入力します。 D列にその結果を表示させる関数を入力したい。 と考えています。 但し、以下の条件を満たす事が必須となります。 (1)A、B、またはCのセルが未入力の場合はDは空白セルのまま。 (2)A、Bいずれかの一方が入力されている場合はCの値を使って計算し結果を表示。 (3)A、Bいずれも入力されている場合はBを優先してCの値を使って計算し結果を表示。 よろしくお願いします。

  • エクセルVBAについてお尋ね致します。数式が入力されたセルを異なるセル

    エクセルVBAについてお尋ね致します。数式が入力されたセルを異なるセルの条件によって「値」のみ残す方法を模索しております。 使用する列および行の例 列=A、B  行=5~10、15~20、25~30(A列、B列共通) 上記対象セルの内訳 A列(参照セル)=数値 ※空欄の場合もあります B列(変更セル)=数式(Aセル数値 * ○○%) ※B1セルの例:=IF(A1="","",A1*10%) のような数式が記入されております。 (例) Private Sub CommandButton1_Click() ’参照セルの指定 ("A5:A10","A15:A20","A25:A30") のようなコード*** ※現在はAセルの範囲としておりますが、後に変更の可能性を有しますので範囲指定が可能な形式を望みます。 ’変更セルの指定 セル指定のコード*** ※現在はBセルとしておりますが、これも後に変更の可能性を有しますのでA・B・Cのような入力(もしくはA=1、B=2、C=3)による指定可能な形式を望みます。 ’参照セル(Aセル)に数値が入力されている場合、数式から得られた変更セル(Bセル)の値を”値のみ”で残す。 実行コード*** ※参照セル(Aセル)が空欄の場合は変更を望まないので、変更セル(Bセル)は何も致しません。(数式のまま残す) End Sub このようなマクロを望んでおります。 イメージとしては数値がAセルに入力されていた際に同じ行のBセルにおいて右クリックコマンド内〔コピー〕 → 〔形式を選択して貼り付け〕 → 〔値〕の貼り付けを行うことをご想像下さい。 列や行の変更が予想されるので変更が可能なことを望んでおりますが、結果が伴えば他の体裁は気に致しません。 お手数ですがご教授宜しくお願い致します。 以上

  • エクセル関数 条件適合時にゼロ値を表示したい。

    エクセルの計算結果のゼロ値の表示方法について教えてください。 セルは、A列・B列・C列に各7行があります。 A1 B1 C1 A2 B2 C2 A3 B3 C3  ・  ・  ・  ・  ・  ・ と言う感じです。 A列とB列は任意の数値を入力し、C列は(A列-B列)の計です。 例えば、C列の計算結果として、次のように数字を表示させたいのです。     A列  B列  C列 1行   8   6   2 2行             (A列に未入力なので、C列にはゼロ値も表示しません) 3行   5   5   0 (計算結果として、C3にはゼロ値を表示します) 【A列に数値が入るかどうかは、その度に変わります。次の時にはB1せるにも数値が入る可能性があります】 C1セルに計算式を入力し、下のセルにはフィルドラッグで入力できるような式はあるでしょうか? よろしくお願いします。

  • Excel2007 のセル範囲

    A2 セルに なんで 、A3 セルに こうなるの を入力し、 B1、B2、B3、B4 セルにいずれも =A2:A3 を入力すると、 それぞれ #VALUE! 、 なんで 、 こうなるの 、 #VALUE! と表示されます。 B2、B3 セルの表示はなんでこうなるのでしょう? C 列以降の 1 ~ 4 行目のセルに =A2:A3 を入力しても、同様の結果になります。

  • エクセルに関して

    エクセルに関して質問させていただきます。 どなたかわかる方がいらっしゃいましたら、どうか力をお貸しください。 説明に至らない点があるかもしれません。そのときはご指摘頂けるとありがたいです。 表 列 B N T 行1 1 W 4 行2 2 W 3 行3 1 L 5 行4 1 L (空白) 行5 3 L 1 行6 3 L 1 行7 1 W 1 行8 1 W 1 行9 2 W 1 行10 1 L 1 (1)列Bの数値(ここでは1,2,3、ちなみにこの数値は4,5・・・とどんどん増えていっても対応させたい、できればアルファベットにも対応して欲しい)をあるセルに入力すると、数値を入力した下のセルに、列Tの数値かつ列NのWから列Tの数値かつ列NのLを引いた値を出したい。空白の場合は1とする。 例 あるセルに1と入力した場合。 1 1 W 4 3 1 L 5 4 1 L (空白) 7 1 W 1 8 1 W 1 10 1 L 1 となるので、結果は-1となる。 (2)さらに結果を表示させたセルの下のセルに Wの数を表示させたい。ここでは3となる (3)さらにWの数を表示させたセルの下のセルに Lの数を表示させたい。ここでは3となる (4)さらにLを表示させたセルの下のセルに WとLを足した数を表示させたい。ここでは6となる (5)さらにWとLを足した数を表示させたセルの下のセルに W÷(W+L)の数を表示させたい。ここでは0.5となる

  • エクセルでHLOOKUP関数の選択範囲について

    エクセルでHLOOKUP関数を使って、検索したいのですが、 シートは、一覧表のシートと データが入っているA101、B203、C305、...シートは300シートくらいあります。 一覧表のシートには、下のような表になっていて、      A列  B列  C列  D列 ...          1003、1004、1005、1006、... 2行目 A101  3行目 B203 4行目 C305       .       .       . データのはいっているシート、A101は下の表になっています。      B列 C列 D列、・・・、Z列 2行目 1004、1005、1006、... 3行目 100、 200、 150、... 一覧表のB列の2行目には HLOOKUP(B2、シートA2のB2:Z3、2行目、FALSE) という感じで、シート名をセルA2のものを参照にして 探して表示させ、B列、C列、D列の2行目から下の行も 表示させたいのですが、うめくできませんでした。 INDIRECT関数を使ってみましたが、セル範囲が無効という エラーがでてしまいます。↓こんな感じで入力してみたのですが... SUMPRODUCT((INDIRECT($A2&"!$B$2:$Z$3"))=$B$1,(INDIRECT($A2&"!$B$2:$Z$3"))) 1つづつデータを見て手打ちはデータが多く、 どんどんデータが増えていくので できれば関数を使って表示させたいと思っています。 詳しい方いらっしゃいましたら、どうか教えてください よろしくお願いします。

専門家に質問してみよう