VLOOKUP関数
を使ってマスタから値を取得するのに、取得したい項目がたくさんある場合、どうしたらいいのでしょう? 1件2件なら第三引数を直接入力、修正すればよいですが、何十件とある場合は以下の方法で効率化しましょう。
・セルに隠し文字を入力しておく
直接入力するのではなく、必要な数字をセルに入力し、そのセルを参照すればドラッグコピーしても自動的に必要な数字を取得してくれます。
B3セルに「=VLOOKUP($A3,$H:$M,B$1,0)」と入力
第三引数に指定しているB1セルは、行のみ絶対参照を付けます。余計な数字を見せたくないのであれば、1行目を非表示にする、文字の色を白に指定するなどすると、見た目の問題も解決できます。
・COLUMN関数を組み込む
第三引数に関数を組み込むのも解決策の一つです。自動的に列番号を取得するCOLUMN関数を組み込み、右にドラッグコピーすることで、1ずつ増える数値を作ることができます。
B2セルに「=VLOOKUP($A2,$H:$M,COLUMN( ),0)」と入力
今回、たまたまB2セルの列番号2と第三引数に入れたい値が一致しましたが、ずれがある場合は調整値を加えて、数値を一致させましょう。
・MATCH関数を組み込む
入力したい表の項目とマスタの表の項目が一致していれば、COLUMN関数で対応できました。しかし顧客マスタから、テレアポリストを作るのに氏名・電話番号・購入履歴など必要な項目だけを入力したいときや、入力したい項目の順番が違うときなど、第三引数に入れたい値が1ずつ増えていくのではない場合には使えません。ここではMATCH関数を使い、入力したい項目名がマスタの元表の中で何番目にあるのかを取得し、第三引数に組み込みます。
B2セルに「=VLOOKUP($A2,$H:$M,MATCH(B$1,$H$2:$M$2,0),0)」と入力
MATCH関数の第一引数は行のみ絶対参照です。式の最後にMATCH関数の第三引数とVLOOKUP関数の第四引数の0が2つ入っています。入力を間違えやすいので注意しましょう。
また、この場合は必ずマスタと表の項目名を一致させる必要があるので注意が必要です。
1万人の業務効率を劇的に改善したExcel速技BEST100/PHP研究所
¥1,836
Amazon.co.jp