2022.2.28 Excel
Excelが得意とするデータの検索と抽出には、さまざまな方法があります。用途に応じて適切な手段を使い分けることで、業務を効率的に進められます。この記事では、Excelを使った具体的なデータの抽出方法について紹介します。
VLOOKUP関数とは、選択したデータの中から検索条件にマッチするデータを表示する関数です。また、HLOOKUP関数とは、選択した範囲の上端行で特定のデータを検索して、範囲内で一致する値を求める関数です。どちらもビジネスでの使用頻度が高い関数のため、覚えておくとよいでしょう。
VLOOKUP関数とHLOOKUP関数を使用する条件は、以下のとおりです。
一覧表の左端の列を検索して、条件に一致した行のデータを抽出するときは「VLOOKUP関数」を使います。
VLOOKUP関数は、以下のような使い方が可能です。
商品コードのように、1商品に1つの数字や記号が割り振ってある情報を元に、詳細情報を抽出できます。たとえば、見積書原本に商品コードを入力して、商品単価や商品名を抽出するといった使い方があります。
顧客リストのなかから顧客情報を探すときにも有効です。たとえば、顧客名をプルダウンメニューから選択すると、住所データが表示されるといった使用方法があります。
VLOOKUP関数には、4つの引数があります。
=VLOOKUP(検索値,セル範囲,列番号,[検索方法])
4つ目の検索方法に指定する値は、以下の2つです。
TRUE:近い値を探す
FALSE:完全一致を探す
TRUEは似た値を見つけてくるため、基本的には、FALSEを指定します。
では実際に、商品コードを入力して、商品一覧から商品名と単価を抽出する方法を見ていきましょう。
検索値 | セルB4の商品コード |
セル範囲 | 商品一覧全体を指定 |
列番号 | 範囲したセルの左から何番目かを入力 商品コードのセル(B13)を起点として、商品名は「2」単価は「3」 |
セル範囲($B$12:$D$17)の左端の列(商品コード)から、検索値(B4)に入力した「1002」を検索して、セルC13「aaa社製 蛍光ペン」のデータを抽出できます。
商品名と単価の関数をコピーしておけば、商品コードと数量を入力するだけで自動的に表示されるようになるため、見積書の作成がスムーズです。同じ方法を用いて、注文書にも応用できます。
HLOOKUP関数は、VLOOKUP関数の検索方向が横方向(列方向)に進む関数です。一覧表の上端行を検索して、条件に一致した列のデータを抽出します。横方向に作ったデータの検索・抽出に活用できます。
XLOOKUP関数は、サブスクリプション型「Microsoft365」と、買い切り型「Office2021」から搭載された新しい関数です。VLOOKUP関数とHLOOKUP関数、両方の機能を兼ね備えており、左端・上端以外で検索することも可能です。連続したセルであれば、ひとつの数式で同時に値を抽出できるようになります。
リストの左端や上端に検索値がないときは、INDEX関数にMATCH関数を組み合わせる方法が有効です。縦方向・横方向どちらでも検索できるため、活用の幅が広がります。
使用条件は以下のとおりです。
INDEX関数は、指定したセル範囲から、指定した行番号・列番号がクロスするセルを抽出します。行番号・列番号のうち、どちらかだけ指定してデータを抽出することも可能です。
=INDEX(セル範囲,行番号,列番号)
MATCH関数は、検索範囲から検索値を探して、検索範囲内の位置を数字で表します。
=MATCH(検索値,検索範囲,[検索方法])
この2つを組み合わせることで、以下のように検索できます。
=INDEX(セル範囲,MATCH(検索値,検索範囲,[検索方法]),列番号))
=INDEX(セル範囲,行番号,MATCH(検索値,検索範囲,[検索方法]))
次項では、単独条件と複数条件の指定方法をそれぞれご紹介します。
この関数を使うシチュエーションは、VLOOKUP関数とほぼ同じです。ただし、検索場所と検索方向を自由に設定できるため、さまざまな表のデータ抽出に役立てられます。
ここでは、縦方向にデータを検索する方法をご紹介します。
セルC12で略称を指定して、カタログ送付状の宛名を自動抽出する例を見てみましょう。
=INDEX(セル範囲,MATCH(検索値,検索範囲,[検索方法]),列番号)
セル範囲 | カタログ送付先一覧全体 |
行番号 | MATCH関数で抽出 |
列番号 | 選択したセルの範囲の左から何番目かを入力 B17を起点として、ショールーム名は「1」担当者名は「2」 |
検索値 | セルC12の略称を参照 |
検索範囲 | カタログ送付先一覧の略称のみ指定 ※検索範囲を自由に指定できるため、VLOOKUP関数より汎用性が高い |
検索方法 | 0を指定(完全一致) |
以下の図のように、MATCH関数は、略称($D$15:$D$20)から略称入力した値(C12)の大阪を探して、範囲内の位置「3」を抽出できます。INDEX関数では「大阪ショールーム」を抽出できます。
続いては、出荷実績から取引先名と商品名を組み合わせて、データを抽出する方法を解説します。複数条件で検索するときは、配列数式を活用します。
配列数式とは、複数セルの計算を1度に処理する機能です。数式を入力した後、Ctrl+Shift+Enterキーを押すと、数式が{}で囲まれて配列数式となります。
※お使いのExcelによっては、{}で囲まなくても計算できます。
複数条件で抽出するときは、MATCH関数の検索値と検索範囲を「&」でつなげて指定します。INDEX関数は、単独条件と同じです。
出荷実績表から取引先名と商品名を組み合わせて検索して、出荷日・出荷金額を抽出する記述内容は、以下のとおりです。
=INDEX(セル範囲,MATCH(検索値1&検索値2,検査範囲1&検査範囲2,[検索方法]),列番号)
セル範囲 | 出荷実績表全体 |
行番号 | MATCH関数で抽出 |
列番号 | セル範囲の左から何番目かを入力 出荷日は「1」出荷金額は「6」 |
検索値 | 取引先名&商品名 セルB3&C3 |
検索範囲 | 出荷実績表の取引先名欄&商品名欄 B11:B16&C11:C16 |
検索方法 | 0を指定(完全一致) |
フィルターは、複数の検索対象を複数の条件で抽出できる機能です。
以下のような条件のときに活用できます。
フィルター機能を使用すると、表のすべての項目を検索対象にできます。日付・文字・数値を自由に選んで抽出できるため、あらゆる角度からのデータ集計や分析などに役立ちます。
フィルターの使い方を解説します。,br>まずは、表の一部を選択します(画像ではA2セル)。次に、【データ】タブの【フィルター】をクリックすると、見出しにプルダウンが表示されます。
プルダウンメニューを開いて選択肢をチェックすることで、データ抽出の条件を絞ることが可能です。プルダウンメニューに複数のチェックを入れることもできます。
上記のように、「aaa文具店」で条件を絞り「OK」をクリックすると、「aaa文具店」だけのデータを抽出できます。
さらに、商品名を「蛍光ペン」で絞ると「aaa文具店」の「蛍光ペン」だけ表示できます。
複数の条件を使って、素早く情報を抽出したい場合に有効です。出荷管理をはじめ、店舗の商品管理や在庫管理などにも役立ちます。
Excelには、ほかにもさまざまなデータ抽出方法があります。
例とともに応用方法を紹介します。
下記の4つの関数を組み合わせることで、文字列から文字を抽出できます。
=FIND(検索値,文字列,[検索開始位置])
=RIGHT(文字列,文字数)
=LEFT(文字列,文字数)
=LEN(文字列)
番号①のFIND関数は、文字列から文字を検索して、何番目にあるかを返します。
以下の図では、検索値を[” ”]として空白を検索しています。
番号②③のRIGHT関数・LEFT関数は、文字列の末尾(右端・左端)から指定した文字数の文字を返します。
番号の④LEN関数は、文字列の文字数を返す関数です。
これらを組み合わせて、「空白の前だけ」「後だけ」を取り出してみましょう。
FIND関数で抽出した空白までの文字数から、空白1つ分を「-1」して、LEFT関数で左から「bbdd社製」を抽出します。
文字列の後ろだけ取り出す場合には、セル内(B8)の全体の文字数をLEN関数でカウントしたあと、FIND関数で空白までの文字数を差し引くことで、データを抽出できます。
「LEN関数:全体の文字数」ー「FIND関数:空白までの文字数」=「4」
RIGHT関数で右から「4」文字を抽出すると、「消しゴム」というデータが表示されます。
数字をIF関数で条件分岐して分類する方法があります。
以下のように記述します。
=IF(論理式,真のとき,[偽のとき])
有休消化率が80%より高いときに「良」と表示し、それ以外は「確認」と表示します。以下の図では、営業1課に「確認」が表示されているため、有給消化率が低い部署ということが分かります。
Excelの表からデータを検索・抽出するための関数や機能をご紹介しました。使用する関数・機能によって活用方法が異なるため、シーンに合わせて取り入れることが重要です。Excelでのデータ抽出の方法をマスターすれば、データ検索のスピードが向上するほか、目視チェックによるミスを削減することにもつながります。関数やフィルターなどの機能を活用して、日々の業務効率化を図ってみてはいかがでしょうか。
© Certify Inc. All Rights Reserved.