Excelを使いこなす上で絶対に避けて通れない関数、それがVlookup(ブイルックアップ)関数です。一見難しそうですが、やってみるとそうでもないです。
Vlookupの概念
look upは「調べる」という意味で、vはvertical=「垂直」。よって垂直に調べる関数という意味になります。
たとえば、リストから特定の人の電話番号を調べる場合で考えてみます。

まずは垂直に名前を追っていき、目的の人物を探します。

目的の名前を見付けたら、そこから水平に視点をずらし、目的のデータ(電話番号)を探し当てます。
Vlookup関数がやってくれるのも、ちょうど上のような処理です。検索する範囲(名前)の中で目的の値を見付け、そこから右側にあるデータを表示する。
この挙動は、社員番号から社員の名前を調べたり、型番から商品名を調べたりと、仕事上の多様な場面で活用できます。
Vlookup関数の使い方
では、実際に使ってみたいと思います。書式は下記の通り。
データの垂直→水平検索
Vlookup(検索値,適用範囲,水平方向の移動距離,検索の型)
Vlookup(検索値,適用範囲,水平方向の移動距離,検索の型)

テスト用に、こんな感じの表を作ってみました。

型番検索に型番を打ちこむと、

型番に対応する商品名が自動的に表示される、というものを作ります。

商品名を表示するセルを選択し、=vlookup(と打ちこみます。するとVLOOKUP(検索値,範囲,列番号,[検索方法])とガイドが表示されます。

検索値は「何を検索するか」。電話番号の例で言えば斎藤さんです。今回はF2セルに打ちこんだ値を検索したいので、F2と入力(またはマウスでF2をクリック)します。

,を打ち次に進みます。範囲はVlookupを適用する範囲です。検索する型番、表示する商品名どちらも含む必要がありますので、A2:B14と入力(またはマウスで範囲選択)します。
検索はこの適用範囲のうち、一番左の列に対して行われます。それより右の列にあるデータは検索対象に含まれません。
検索はこの適用範囲のうち、一番左の列に対して行われます。それより右の列にあるデータは検索対象に含まれません。

,を打ち次に進みます。列番号は検索値が見つかった場合、どの列のデータを返せばいいかを選択します。一番左の列(検索した列)が1、その右の列が2、その右が3..と数えます。
今回は検索範囲のひとつ右の列のデータを表示したいので、2と入力します。
今回は検索範囲のひとつ右の列のデータを表示したいので、2と入力します。

,を打ち次に進みます。最後に検索方法ですが、完全一致が部分一致かを選ぶものなので、完全一致を意味するfalseを入力しておけばOKです。

Enterを打って完成です。これで=vlookup(F2,A2:B14,2,FALSE)(A2~B14の中で一番左の列を検索し、F2と完全一致する値を探す。もし見付けたら同じ行でひとつ右にあるデータを表示する)という式が完成しました。

型番検索に型番を打ちこむと、対応する商品名が返されることが確認できました。
価格も表示してみる

同様に価格も型番から表示されるようにしてみたいと思います。今回は適用範囲に価格を含む必要がありますので、C列を含むA2:C14を指定します。

列番号はA列からふたつ右なので、3を指定します。

あとは同様で、=vlookup(F2,A2:C14,3,FALSE)で完成です。これで型番を打つと、名称および価格が自動で表示されるようになりました。

念のため型番を変更すると、名称および価格も更新されることが確認できました。
検索条件がTrueの場合

とりあえずFalse(完全一致)にした検索条件ですが、True(近似一致)で使う場合もあります。

原則、Trueにする場合は対象は数字、検索対象は昇順に並べます。

昇順とはこういった状態です。

左の表では、商品番号に対応した金額を右の表から近似一致で検索して表示しています。
図を見てもらうとわかる通り、数値が一致しない場合、それより下の数値の検索結果が返されています。従って、特定金額以上で異なる結果を返したい送料などの計算に利用できます。
図を見てもらうとわかる通り、数値が一致しない場合、それより下の数値の検索結果が返されています。従って、特定金額以上で異なる結果を返したい送料などの計算に利用できます。

しかし検索表を昇順でなくしてしまうと、

途端によくわからないことになります。これが昇順で並べないといけない理由です。

文字列の場合は、Trueは使えないものと思ってよいと思います。たとえばこんな感じになりますが、

前方一致する場合はその値を返します。まあそれはいいとして、

こんな感じで明らかにおかしい結果を返すことがあるからです。やりようがあるのかもしれませんが、部分一致させたいならワイルドカードを使うほうがおすすめです。
関連記事
商品番号を入力すると商品名と単価を表示する方法です。この記事と似たようなことをしているので、併せて参照していただくとわかりやすいかもしれません。
条件によって分岐し、複数の表を使い分けるVlookUp関数の例です。同じ席でも大人と子供でちがう料金を表示する表を作っています。
ワイルドカードを使い、文字列の一部を入力するだけで対応するデータが表示される検索窓の作成例です。
VlookUpで作った表のうち、特定条件の項目だけを表示させる方法です。
範囲内の頻出単語を表示する方法です。VlookUpを一部使用しています。
Vlookup関数については以上ですが、もし検索元のデータを拡張する予定がある場合は、構造化参照をしておくと便利です(やや難易度高め)。
なお、もし水平→垂直方向にデータ検索をしたい場合は、HlookUp関数というものもあります(縦と横変えるだけです)。

やりたいことから方法を探すエクセル(Excel)操作・関数・VBA(マクロ)逆引きまとめ
逆引き(やりたいことから探す)Excel記事まとめ

関数・演算子・メソッド・プロパティ名から探すExcel/VBA(マクロ)使い方・組み合わせ方まとめ
こちらはExcelやメソッドの諸機能を、機能の名称から探せるまとめ記事です。
コメント