皆さんこんにちは。合同会社StudioDataのRyumaと申します。
今回はデータを検索できる便利な関数、VLOOKUPとHLOOKUPについて解説していきます。
VLOOKUP関数で縦方向の検索
VLOOKUPは縦方向の検索関数という表現をされ、列の中から検索条件にヒットする値を見つけ出して返してくれます。
下記の表を使いながら解説していきます。
上の表には、買い物をした日付、名前、購入したものの項目、金額、メモが記入されています。
この中から1/5に買い物をした人物をVLOOKUPで取得する際、下記のように記述します。
=VLOOKUP(D15,A2:E13,2,false)
ちゃんと1/5に買い物をした人物は「Ai」だと取得されました。では一つずつVLOOKUP関数を構成する要素について解説していきます。
VLOOKUPを構成する要素
=VLOOKUP(検索値, 範囲, 列番号, 検索の型)
- 検索値:どのデータで検索をかけるか
- 範囲:どの範囲から検索値を探すか
- 列番号:範囲のうちの何列目を取得するか
- 検索の型:完全一致で検索するかどうか
検索値
=VLOOKUP(検索値, 範囲, 列番号, 検索の型)
まずはVLOOKUPの検索値についてです。
上の例では、検索値をD15セルにしており、ここには「1/5」と入力されています。
D15のセルの日付を変更することでVLOOKUPの中身をいじらなくても検索値を変更することができます。
検索の範囲
=VLOOKUP(検索値, 範囲, 列番号, 検索の型)
「1/5」をどこから探しに行くかを定めるのが「検索の範囲」です。今回は「A2:E13」となっており、この中から「1/5」を探します。
ここで注意が必要なのは、検索値は範囲の一番左の列に置いておく必要があるということです。2列目3列目を検索値として探すことは出来ません。
「検索の範囲」の一番左の列にある「検索値」を探し出す、ということを覚えておいてください。
列番号
=VLOOKUP(検索値, 範囲, 列番号, 検索の型)
VLOOKUPは縦方向に検索をかけ、ヒットした行の指定した列番号の値を返す関数です。今回では、「A2:E13」の中から見つけだした「1/5」がある行のうち、左から何列目の値を持ってくるかということです。
名前を取得するには、範囲のうち左から2列目の値が欲しいので「2」と記述します。項目が欲しいなら「3」、金額なら「4」です。
検索の型
=VLOOKUP(検索値, 範囲, 列番号, 検索の型)
最後に検索の型についてですが、基本的にVLOOKUP関数は今回のように文字を取得することが多く、完全一致での検索をかけることがほとんどであるため「ここには『false』を記入しておこう」くらいに覚えておいてください。
正確にいうと、「検索の型」は、検索したい値が見つからない時にどのように処理するかを決めるためのものです。
「TRUE」か「FALSE」を選択でき、省略することも可能でその場合は「TRUE」として扱われます。
TRUEを使うときは「検索値」を越えない最大値を該当のデータとするため、検索値が数値であることが前提条件です。
まとめると、VLOOKUP関数とは「=VLOOKUP(検索値, 範囲, 列番号, 検索の型)」の形で記述し、「"検索の範囲"の一番左の列にある"検索値"を完全一致か近しい値で探し出し、それがある行の左からX列目の値を取得する」という関数です。
HLOOKUP関数で横方向の検索
続いて横方向の検索関数HLOOKUPについて解説しますが、VLOOKUPとやることはほとんど同じです。
=HLOOKUP(検索値,範囲,行番号,検索の型)
この形で記述し、「範囲の一番上の行から検索値を完全一致または近しい値で探し出し、検索値がある列の上からX行目の値を取得する」という意味になります。
VLOOKUPを使うかHLOOKUPを使うかは、検索をかける表の書き方によって選べば良いのでどちらも意味を理解して使えるようにしておきましょう。
VLOOKUP/HLOOKUPまとめ
今回はExcelやスプレッドシートで作業する際によく使う検索関数について解説しました。
CSVファイルでダウンロードしてからExcel/スプシに落とし込み、該当するデータを検索するというのはよくある作業ですのでぜひこれらを使いこなして業務の効率化にチャレンジしてみてください。
最後まで読んでいただきありがとうございました!