質問: excel lookup関数を使う際の範囲指定の仕方 excelでlookup関数を使いデータ検索したいと思います。 現在のデータはb-eまでしか入っていないので lookup(1,b2:e2,b1:e1) の様に範囲を指定しました。 しかし徐々にf,g,h,i~と横方向にデータが増えていきますと,その都度範囲指定をやり直さなければなりません。 なにか関数かもしくは条件書式などで,(b2:今データがある列までの2行)などという指定はできないものでしょうか。考えついたのは(b2:作成できる最大の列の2行)というような方法です。それより他によい方法はありませんか? できればデータを増やした時に計算式内の範囲指定部分も増えるというような方法が望ましいのですが,おわかりの方,何かお知恵をお貸しください。よろしくお願いします。
回答: 質問はlookup関数なれど、vlookupでやってみました。 下記の範囲名を使う方法で、質問のニーズは満たされるのでは?。 (関数で範囲の指定の最下行を可変にすることもできるが、関数が長く難しくなり関数の利用の上級編というところか。 a列に社員番号を入力し、b列に対応した姓を出す例で説明する。 ーーー g1:g1000(1000は大きく取る)を範囲指定する 挿入ー名前ー定義 範囲の名前として「範囲」と定義(どんな名前でも良い) ーーー b列b1に =if(a1="","",vlookup(a1,範囲,2,false)) と入れて適当な行数まで式を縦方向に複写。 ーー 番号ー氏名の対応テーブルについて、g1:h5である時まで使っていて(g1:h5) 番号氏名 2山田 5植田 7近藤 9田中 新入社員が3人入ってきて g1:h8 番号氏名 2山田 5植田 7近藤 9田中 11上田 20鈴木 34林 と追加したときに、b列の式は、修正する必要は無い。 ーー 上記例の1000行までしか、セル範囲の定義をしてないことは、表の不使用の上の行に注記しておくと良いかも。 ーー a列の番号が当初設定を超えることになった場合に、b列の式を (当初複写済みの行より)さらに下方向に複写して増やさ無ければならないが、これを自動でやるのは、vbaでも使わないとできない。 こんな質問はいままで無い。