[temp id=6]
VLOOKUP関数をマスターするって必要?
表の中から特定の値を指定してデータ検索する事ってよくありませんか?
見つけたセルの2列右の値とか。
ボウリングでのリーグ戦のレーン抽選でも参加選手の中から番号によりレーン・投球順を決めるので非常によく使いますので、VLOOKUP関数を使って解決しています。
エクセルをうまく使っている人はVLOOKUP関数を駆使していますよ!
そんな事言っても、検索値,範囲,列番号,検索方法ってのがよくわからない!
そうなんです。VLOOKUP関数って使いこなせば便利で作業効率がアップするけど、検索結果がエラーになったり、何となく苦手意識ありませんか?
ここでは実例がボウリングになってしまいますが、番号と名前と他って考えれば、一般的な顧客名簿や商品管理台帳と同じように応用できますよ!
VLOOKUP関数とは?
エクセルのVLOOKUP関数とは、検索のデータ元となる表、簡単に言うと台帳みたいなものかな?
ボウリングのリーグ戦での参加者一覧表です。
この参加者一覧表から、指定した行のセルの値を探して表示させる時に使います。
こう書いてあっても難しいですよね。
範囲
この図は、データの重複チェックでも使用したのですが、先ほどの検索の元データとなる表です。
AQ列が登録順番号、AR列が会員番号(顧客番号や商品番号に置き換えてもいいかな)AS列が名前(商品名に置き換えてもいいかな)こんな感じの元データです。
VLOOKUP関数の式で言うと、「範囲」(AP3:AV42)になります。
実際にはレーン抽選フォーム(ユーザーフォーム)を使って入力したレーン番号と投球順がAW列・AX列に自動入力され、AP列に「&」を使ってAWとAXを結合させた値を自動的に割り振っています。
レーン抽選を行うと下の図のようにレーン番号(AW列)・投球順(AX列)・割り当て(AP列)にそれぞれ自動入力されました。
これがレーン抽選後の元データとなります。
検査値
では、次に元データの表から見つけたい値についてです。
簡単に説明すると、このセルの値(数字)を元データから探すって感じで、探す=見つける=検査する=「検査値」と書くと分かりやすいかな?
上の画像の通り、VLOOKUP関数を使っていますが、AW列が検査値になっています。
セルAQ103には、検査値AW103の値が91なので元データの範囲(AP3:AV42)の中から探してくれます。
同じようにセルAR103にもAS103にもって感じで緑色のセルには全てVLOOKUP関数が入っていて、同じ行の検査値(AW列)から、登録順・会員番号・名前・AVE・HDCPを元データから探すようになっています。
当然ながら、AW列の値と元データのAP列の値が同じ値が無いと見つけられないって事で、見つければ、表示されることになります。
これにより、レーン抽選した番号などが元データにはランダムに入力されているのですが、この表で番号順に整列させてレコードシートへ転記するようにしています。
通常の並び替えで処理すると、空欄が出た場合に繰り上がってしまって誤ったレコードシートができてしまうのを防止するためです。
IFERROR関数が無いとエラー表示になるので、使っています。
このエクセル関数を使っています
列番号
列番号は元データの表の検査値と同じ値(数字)の列から右に何列目にあるデータを(セルの値)取り出すかという事です。
セルAQ列は「登録番号」なので元データの表を見ると、右隣ですね。
右に1列だから「1」としたいところなのですが、検査値と同じ列も含めるので「2」となります。
セルAR列は「会員番号」なので、友データの表を見ると、2列右なので「3」、という風に列番号を必要なデータに合わせて変更します。
せっかくなのですべて書くと、「名前」は「4」、「AVE」は「6」、「HDCP」は「7」です。
この為に、元データの表の検査値と同じ値は一番左側の列に配置する必要があります。
検索方法
最後に検索方法ですが、省略することもできますが私自身は省略した事はありません。
ボウリングのリーグ戦での成績表でも、会員名簿でも、検査値が番号や数字の時だけVLOOKUP関数を使うので、完全一致だけ検索対象にしているからです。
検査値と完全一致する場合のみデータ検索をするには0(ゼロ)を使います。
もちろん画像の通りここでも0を使用しています。
こうすることで、検査値に該当しない値はエラーで、見つけられれば欲しい値が表示されます。
先ほど書いた通り、省略することもできます。(1も同様)
この場合、見つからなかった場合にエラーにならずに、一番近い数字を勝手に表示してしまいます。
ということで、関係ない数字を出してしまうので個人的には使い物にならないって思っていますので、この方法では使っていません。
何となくVLOOKUP関数をわかってもらえたかな?
VLOOKUP関数のエラー
スポンサーリンク
VLOOKUP関数を使い始めた頃は、複雑な数式なので苦労しました。
エラー表示や思った答えと違う場合などありましたが、番号を入力するだけでデータ検索して表示されるので、間違えが無くなりましたし、日本語文字入力よりは数字の方が入力しやすいので、作業効率がアップしますね。
最後にありがちなエラーになる原因を書いておきました。
検査値と同じ値を含めて列番号を指定していますか?
検索方法を完全一致の「0」を省略していませんか?
検査値と同じ値の列が元データの表の最左列になっていますか?
検査値または、元データの検査値と同じ値が数式で計算された値になっていませんか?計算された値は数字として認識せず文字列として扱われていますのでVALUE関数で変換しましょう。
このエクセル関数が解決します
このエクセル関数が解決します
[temp id=19]