プロが教えるわが家の防犯対策術!

初めまして。
検索してみましたが、上手いことヒットしなかったので質問させて下さい。
Excel2016です。

【図解】

   A   B 
1 115 りんご
2 226 みかん
3 161 りんご
4 352 ぶどう


といった表があります。
この表を元に、別シートのC1セルに
「A列に100以上150未満の数値があれば、その値のB列のセルの値を表示する(この場合115が範囲内の数値なので、別シートC1セルに“りんご”と表示したい)」
とするには、どういった式を組めばいいでしょうか?
というか、これは可能でしょうか?

よろしければご教示願いたいです。

質問者からの補足コメント

  • ≫No.1様

     すみません、それをやろうとすると、シートが違うからかエラーが出ます……。


    ≫No.2様

     私の書き方が悪かったですね。
     その式ですと、A1のセルでしか判断出来ないですよね?
     検索範囲はA列すべてです。
     A列すべての中から、条件の範囲(この場合100以上150未満)の数値があれば、そのセルの右列を参照したいのです。

      補足日時:2017/07/24 18:39
  • ≫No.3様
    会社でしかパソコンに触れないので、教えて頂いた式はまだ試せていないのですが、A列に重複するデータはありません。
    後出しみたいで申し訳ないのですが、100から150の範囲内の数字はA列に1つ(この場合115一つのみ)しかないです。
    更に付け加えると、上記の検索結果の下(別シートC2)には、今度は151から200までを表示したいです。
    やり方を1つ教えて頂ければ、あとは自分で頑張ろうと思っていたのですが、どうやら難しそうですね……。
    ご丁寧に教えて下さったのに恐縮ですが、この条件でも可能な式をお願い致します。

      補足日時:2017/07/24 21:49

A 回答 (6件)

No.3です。



>100から150の範囲内の数字はA列に1つ(この場合115一つのみ)しかないです。
A列に条件が一致するデータは必ず一つしかない!というコトであれば・・・
=INDEX(Sheet1!B1:B1000,SUMPRODUCT((Sheet1!A1:A1000>=100)*(Sheet1!A1:A1000<150),ROW(A1:A1000)))

としてみてください。(配列数式の操作は不要です)

※ エラー処理をしていませんので、万一該当データが存在しない場合は
B1のデータが返ります。

>今度は151から200までを表示したいです。
数式内の「100」と「150」部分を変更してください。
以上、以下、未満の使い方は数式内の等号で調整します。

※ どこかのセルに○○以上 △△未満 の数値を入れるようにしておけば
そのセルを直接参照する数式で対応できます。m(_ _)m
    • good
    • 0
この回答へのお礼

助かりました

できました!!!
ご丁寧にありがとうございました(*´♡`*)

お礼日時:2017/07/25 20:57

》 A列に重複するデータはありません


そうであっても、B列には「りんご」のように重複するデータはあるわけだし、例えば「100以上150未満の」1つの範囲内に複数の A列データがあり得るならば、複数のB列データを表示させなきゃならンでしょ?
それとも、1つの範囲内には1つの果物しか表示されないように、細工された表なのでしょうか?
    • good
    • 0

[No.2補足]へのコメント、


》 その式ですと、A1のセルでしか判断出来ないですよね?
私は提示式を下方にズズーッとオートフィルすることを考えていました。
「A1のセル」以外にも該当するものがあれば、B列の同行にデータが表示されます。
貴方は、「A列すべて」に該当データがあれば、B列に全部表示しろと?
例えば Sheet1 の 3行目の「161」が「149」だった場合は、「りんご」を2回表示させるの?それとも重複したものは1回だけ?ソコントコもきっちりネ!

【余計なお世話】
「No.1様」に「シートが違うからかエラーが出ます」とのこと。貴方のヤリカタが悪いからそうなります。
「シートが違う」場合は、その違うシートから作業を始めるのです。尤も、このことを知っている人は少ない。
    • good
    • 0

こんばんは!



該当データが複数存在する場合もあり、すべてをC1セル以降に表示したい!というコトでしょうか?

C1セルに
=IFERROR(INDEX(Sheet1!B$1:B$1000,SMALL(IF((Sheet1!A$1:A$1000>=100)*(Sheet1!A$1:A$1000<150),ROW(A$1:A$1000)),ROW(A1))),"")

配列数式なのでCtrl+Shift+Enterで確定!
C1セルのフィルハンドルで下へコピーしてみてください。m(_ _)m
    • good
    • 0

オーソドックスには


=IF(AND(Sheet1!A1>=100,Sheet1!A1<150),Sheet1!B1,"")
かな?
少し気を衒って
=IF((Sheet1!A1>=100)*(Sheet1!A1<150),Sheet1!B1,"")
でもOK。
    • good
    • 0

[データ]の「フィルター」横の[詳細設定]でできます。

    • good
    • 0

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