- ベストアンサー
Excel 関数での範囲指定
Excelでの関数計算は、ほとんど使用した事の無い初心者ですが、もし分かれば教えてください。 あるアプリケーションソフトにパラメーターを投入し実行させるとExcelにて表が出来ます。この表のある列の関連するものを他のある列で指定したものが有るか無いか LOOKUP関数を使用して結果を見ようと思います。しかし、計算を実行するごとに結果を出したい範囲が変わります。簡単に、関数内の範囲指定をする方法は無いでしょうか。 A B C D E 1 ミカン 100 南 10 2 リンゴ 150 北 15 3 ミカン 200 南 20 4 バナナ 250 南 30 5 ミカン 300 南 55 リンゴ有り 例えば、上のような表が出来今回は、B列の100~200(B列は連続して範囲指定できる)までの範囲を決め A列に「リンゴ」があれば、「リンゴ」とどこかのセルに表示させる。 説明がうまく出来ずわかりにくいかもしれませんがよろしくお願いします。(要は、関数内の範囲指定を他から指定する事は出来ないかなあ)
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
列Bが何行目まであるか =OFFSET(B1,COUNTA(B:B)-1,0) 列Aにリンゴがあるか =IF(MATCH("リンゴ",Range(A2:A?),0)>0,"リンゴあり","リンゴなし") ? のところに最初の式を代入すると =IF(MATCH("リンゴ",Range(A2:A(OFFSET(B1,COUNTA(B:B)-1,0))),0)>0,"リンゴあり","リンゴなし") チョット無理がありますかね でもヒントにはなるでしょうか....
その他の回答 (2)
- hallo-2007
- ベストアンサー率41% (888/2115)
No2です =VLOOKUPは・・ =VLOOKUP(G1,INDEX(A:A,MATCH(E1,B:B),1):INDEX(D:D,MATCH(F1,B:B),1),4,FALSE) どこでもかまいませんn INDEX(A:A,MATCH(E1,B:B),1) で範囲の開始 INDEX(D:D,MATCH(F1,B:B),1) で範囲の最後を指定します。 は上記の式のINDEXの部分を説明しているだけです。必要はありませんが、 試しにあいているセルに入れてみて表示を確認してみるとわかりやすいと思います。
お礼
私の早とちりでした。パラメータを投入しなかったせいでした。 これから、もう少し関数について勉強したいと思います。 (また、お世話になるかもしれませんが・・・) 大変便利な式を教えていただきありがとうございました。
補足
たびたびのサポートありがとうございます。お手数ですが、質問ついでに教えてください。 hallo-2007 さんの教えていただいた、VLOOKUP(G1,INDEX(A:A,MATCH(E1,B:B),1):INDEX(D:D,MATCH(F1,B:B),1),4,FALSE) を表の中に貼り付けてみましたが、#N/A というエラーメッセージが出ました。素人では解析できません。もし分かれば教えてください。
- hallo-2007
- ベストアンサー率41% (888/2115)
>B列の100~200(B列は連続して範囲指定できる)までの範囲を決め をINDEX関数とMATCH関数で指定する方法です。 A B C D E F G 1 ミカン 100 南 10 100 200 リンゴ 2 リンゴ 150 北 15 3 ミカン 200 南 20 4 バナナ 250 南 30 5 ミカン 300 南 55 と入れているとして、 =VLOOKUP(G1,INDEX(A:A,MATCH(E1,B:B),1):INDEX(D:D,MATCH(F1,B:B),1),4,FALSE) を試してみてくださ。 INDEX(A:A,MATCH(E1,B:B),1) で範囲の開始 INDEX(D:D,MATCH(F1,B:B),1) で範囲の最後を指定します。
補足
早々の回答ありがとうございます。 出来そうな予感がします。 教えていただいた、=VLOOKUP・・・ と INDEX・・・ はどのセルに書いたら良いのでしょうか?
お礼
早々の回答ありがとうございました。 勉強します。