編集マクロ【入門編6】
こんにちはーよしもりです★
前回の【入門編5】から久しぶりの投稿になります!
なぜか公開していなかったのです😭
では、早速!
今回は引き続きエクセルの関数を使った作業効率UPの方法をお話します♪
とっても便利なVLOOKUP関数!
VLOOKUP関数を知っていますか? ビジネスシーンでよく使われる関数です。
たとえば、ISBNコードと書籍名、著者名、定価、発売日などの書籍データが羅列されている表があったとします。
その中で指定したISBNコードの書籍の書籍名と著者名と定価を取り出したいとします。
その際に役立つのがVLOOKUP関数です。つまり、表から一致するデータを検索して、必要なデータだけ抜き出してくれる関数なんです(/・ω・)/
などなど、複数が該当する検索ワードでデータを取得したい!
よく使われるのは、キーが1つしかないデータのとき
VLOOKUP関数は、基本的に1つしか該当しないものを表示します。そのため、検索ワードがキーになります。
ISBNコードは、1つの書籍に1つしかありません!
そのため、VLOOKUP関数でかんたんに必要なデータだけを取得できるんです♪
しかーーーし!
ISBNコードなんて普段の生活で使わないですよね!?
この著者のデータがほしい
2019年の6月に出た書籍のデータがほしい
そんな時は、工夫が必要なんです\(-o-)/
検索にひっかかる複数のデータを取得する方法♪
さきほどのISBNだと、さらに工夫が必要なので、もう少し簡略化したたとえで説明していきます👀
食材の旬や性質を示したデータから季節ごとの食材名を抽出します!
①必要な表を準備します
食材ごとに旬の季節や性質が表示されています。
右側の表は、春の食材、夏の食材、秋の…となっています。
②左の表に季節ごとの番号をつけます
スイカは夏の1番目です。あんずは、スイカが出ているので、夏の2番目になります。
連番の列を作成して、COUNTIF関数を入力します。
=COUNTIF($C$1:$C4,C4)
これで季節ごとの番号が表示されました。
③季節と番号を組み合わせます
次に列を挿入して、検索キーになる列をつくります。
◆ちょこっと豆知識◆
列を選択してキーボードのControl+Shift+「+」を同時に押すと列の挿入ができます★
食べ物と連番のデータをつなげます!
=D4&B4 と入力すると、該当セルの季節「夏」と連番「1」がくっつきました(^^)
ドラッグかコピペでほかの食材にも検索キーが表示されます!
④右の表にVLOOKUP関数を入力する♪
いよいよVLOOKUP関数の登場です(/・ω・)/
VLOOKUP関数は、「=VLOOKUP(検索値,検索範囲,列,[検索条件])」で成り立っています。
今回は複数のデータを抽出するので、検索値は、「季節&番号」になります!
(ここで連番の隣につくった検索キーが役に立ちます♪)
右の表、春の1番に下の関数を入力します。
=VLOOKUP($H$3&$H4,
◆数式の中身の解説◆
$H→H列($をつけるとコピペなどでもHのまま不変になります)
$3→3行目(上と同じです)
$H$3→「春」のセルをコピペしても変わらないように指定しています
&→アンドの意味のままです
$H4→H列はコピペしても変わらないが、番号「1」は変わってもいいという指定です
⑤次に「検索範囲」を指定します
左の表をドラッグして指定してもOKです!
=VLOOKUP($H$3&$H4,A3:E11,
このとき、検索範囲に「$」をつけていないので、コピペをすると検索範囲が変わってしまします!
そのため、=VLOOKUP($H$3&$H4,$A$3:$E$11, と$をつけましょう!
⑥列をしていします
「列」は表示させたい情報を指定する部分です。ここでは「食べ物」の情報を抽出したいので、C列です。
ただし、VLOOKUP関数では、C列としていするのではなく、検索範囲の左から何列目かを記述する必要があります。そのため、ここでは左から数えて3列目なので、「3」と指定します。
=VLOOKUP($H$3&$H4,$A$3:$E$11,3,
⑦最後に検索条件です!
検索条件は「完全一致」か「部分一致」です。「完全一致」の場合は、FALSEで、「部分一致」の場合は、TRUEです。
ここで指定しない場合は、自動的にTRUEになるので、思っていた結果と異なるケースが出てきます。
そのため、こだわらなくていい場合はFALSEで大丈夫です!
=VLOOKUP($H$3&$H4,$A$3:$E$11,3,FALSE)
無事にデータが表示されました!
⑧コピペORドラッグでほかの行にも反映させる
セルI4の関数をほかのセルにドラッグすると、春2〜6が「#N/A」になりあました。
これは、該当データがないですよという意味です。
このままだと少しかっこ悪いので、空白にしちゃいましょう!
エラーのときに使えるIFERROR関数を使います!
中身は「IFERROR(論理式,エラーのときの対応)」です。
エラー(#N/A)が出ているセルI5に追記します!
=IFERROR(VLOOKUP($H$3&$H5,$A$3:$E$11,3,FALSE),"")
※「""」は空白を表します
空白になりました!ほかのセルにコピペしましょうヽ(・ω・)/
該当するセルだけにデータが格納されて、ほかが空白になりました♪これで見た目も綺麗になりました\(^^)/
では、今回はここまで!
最近はネットから情報を自動で収集するスクレイピングにハマっているので、そちらも投稿できたらいいなーと思ってます( ・∇・)
では、また会いましょう〜♪