- ベストアンサー
Excelで、関数の引数の値を条件によって変更したい
VLOOKUP関数の引数[範囲]を、条件によって自動的に変更したいのですが、できますでしょうか。 例えば、セル[F10]に、VLOOKUP関数の[範囲]に相当する文字列を入れておいて、セル[G10]に、[=VLOOKUP(A10,F10,3)]などとして、値を呼び出したいのですが、どのようにすればいいのでしょうか。 ちなみに、セル[I10]に[=CONCATENATE("=VLOOKUP(A10,",F10,",3)")]とすると希望の文字列は得られ、これを[G10]に値のみをコピーすると、[G10]のセルには希望通りの文字列が入ります。しかしこれは単なる文字列ですから関数として機能しません。一旦訂正モードにしてそのまま確定すると関数として認識してくれますが、全行で訂正する訳にもいきませんから困っています。 変数を使うことになるのかな、とも思いましたが、マクロを組まないで関数の定義だけでできれば好ましいので、何とか工夫できないものかと思っています。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
INDIRECT関数で可能です G10セルに A1:B20 のような文字列があるとき任意のセルに =SUM(INDIRECT(G10)) と入力するとA1:B20の数値の合計を求めることができます。 VLOOKUP関数でも同様になります
その他の回答 (1)
- boy_boy
- ベストアンサー率55% (56/101)
回答No.1
こんにちは。 範囲ごとに名前定義で「名前」を付け INDIRECT関数を使ってみてはいかがでしょう。 「名前定義」 http://www2.odn.ne.jp/excel/waza/name.html#SEC4 =VLOOKUP(A10,INDIRECT(F10),3) みたいな感じで・・・・m(__)m
お礼
ありがとうございました。解決です。 このような使い方は必ずできるはずだと思っていましたが、INDIRECT関数を知りませんでしたので、あれこれやってみては元に戻る繰り返しでした。 このような素晴らしいフォーラムがあるんですから、もっと気楽に質問をしてみても良いのかもしれませんね。 boy boyさん、zap35さん、本当にありがとうございました。