質問: またまた質問させてもらいます・・・ VLOOKUPは本来検索範囲の左端の列を検索していくの ですが、それを他の列をキーにしたいのです。ですが、 元表の順番を変えることができないので、検索できずに 困っています。そこで質問なんですが、 ・元表を変えずに(コピー等を作らずに)、関数内だけで 表を擬似的に並べ替えて、左端の列以外の列を検索キーと した列検索は可能でしょうか?可能なら方法はどうやれば よろしいでしょうか。 ・もしそれがだめな場合他のアプローチはありますが? できれば方法も・・・ あと、もうひとつ質問なんですが、検索範囲を指定する 時に左上のセルの位置は固定で右下のセルが表の行数 によって変化する場合、汎用的に関数で指定することは可 能でしょうか? つまり、B4:H14という範囲指定がある場合、表の行数がひ とつ増えるとB4:H15と範囲指定を変えてくれるような方法 はありますか?ということです。 ということです。それではよろしくお願いします。
回答: LOOKUP関数を使用されたらどうでしょうか。 =LOOKUP(検査値,検査範囲,対応範囲)という具合になります。 検査キーがB1:B15、C1の値で検索し、A列の値を取り出す場合は、 =LOOKUP(C1,B1:B15,A1:A15)になります。 >変化する場合、汎用的に関数で指定することは可能でしょうか? 何行まで値が入っているかを自分で指定する方法、例えば15行までデータが入っているのでD1セルに15と入力する方法で良ければ、 =LOOKUP(C1,B1:INDIRECT("B"&D1),A1:INDIRECT("A"&D1)) とかいう方法があると思います。 表の行数を関数で求めるのなら、D1セルに配列数式で、 {=MAX(IF(B1:B65535<>"",ROW(B1:B65535)))} を入力しておく方法もあるかと思います。