サーティファイ

Officeのお役立ち知識を
分かりやすくお届けします♪

Officeライブラリー

2022.2.28 Excel

【記事】Excel活用術!検索データを抽出するさまざまな方法

Excelが得意とするデータの検索と抽出には、さまざまな方法があります。用途に応じて適切な手段を使い分けることで、業務を効率的に進められます。この記事では、Excelを使った具体的なデータの抽出方法について紹介します。

目次

1.VLOOKUP関数かHLOOKUP関数を用いた方法

VLOOKUP関数とは、選択したデータの中から検索条件にマッチするデータを表示する関数です。また、HLOOKUP関数とは、選択した範囲の上端行で特定のデータを検索して、範囲内で一致する値を求める関数です。どちらもビジネスでの使用頻度が高い関数のため、覚えておくとよいでしょう。

VLOOKUP関数とHLOOKUP関数を使用する条件は、以下のとおりです。

  • ①元の表とは別のところに抽出結果を表示したいとき
  • ②リストに検索対象データが1つしかないとき、もしくは1つ目を抽出すればよいとき
  • ③1つの条件で検索するとき
  • ④VLOOKUP関数は検索値が左端列、HLOOKUP関数は検索値が上端行にあるとき

1-1.左端の文字列を検索して、同じ行のデータを抽出する

一覧表の左端の列を検索して、条件に一致した行のデータを抽出するときは「VLOOKUP関数」を使います。

1-1-1.VLOOKUP関数の使い道

VLOOKUP関数は、以下のような使い方が可能です。

■商品コードから、商品単価や商品名を抽出する

商品コードのように、1商品に1つの数字や記号が割り振ってある情報を元に、詳細情報を抽出できます。たとえば、見積書原本に商品コードを入力して、商品単価や商品名を抽出するといった使い方があります。

■顧客リストから、特定の顧客情報を呼び出す

顧客リストのなかから顧客情報を探すときにも有効です。たとえば、顧客名をプルダウンメニューから選択すると、住所データが表示されるといった使用方法があります。

1-1-2.VLOOKUP関数の使用例

VLOOKUP関数には、4つの引数があります。

=VLOOKUP(検索値,セル範囲,列番号,[検索方法])

4つ目の検索方法に指定する値は、以下の2つです。

TRUE:近い値を探す
FALSE:完全一致を探す

TRUEは似た値を見つけてくるため、基本的には、FALSEを指定します。
では実際に、商品コードを入力して、商品一覧から商品名と単価を抽出する方法を見ていきましょう。

検索値 セルB4の商品コード
セル範囲 商品一覧全体を指定
列番号 範囲したセルの左から何番目かを入力
商品コードのセル(B13)を起点として、商品名は「2」単価は「3」

セル範囲($B$12:$D$17)の左端の列(商品コード)から、検索値(B4)に入力した「1002」を検索して、セルC13「aaa社製 蛍光ペン」のデータを抽出できます。

商品名と単価の関数をコピーしておけば、商品コードと数量を入力するだけで自動的に表示されるようになるため、見積書の作成がスムーズです。同じ方法を用いて、注文書にも応用できます。

1-2.上端の文字列を検索し同じ列のデータを抽出する

HLOOKUP関数は、VLOOKUP関数の検索方向が横方向(列方向)に進む関数です。一覧表の上端行を検索して、条件に一致した列のデータを抽出します。横方向に作ったデータの検索・抽出に活用できます。

1-3.XLOOKUP関数を使えば縦横の両方を検索できる

XLOOKUP関数は、サブスクリプション型「Microsoft365」と、買い切り型「Office2021」から搭載された新しい関数です。VLOOKUP関数とHLOOKUP関数、両方の機能を兼ね備えており、左端・上端以外で検索することも可能です。連続したセルであれば、ひとつの数式で同時に値を抽出できるようになります。

2.INDEX関数にMATCH関数を組み合わせた方法

リストの左端や上端に検索値がないときは、INDEX関数にMATCH関数を組み合わせる方法が有効です。縦方向・横方向どちらでも検索できるため、活用の幅が広がります。

使用条件は以下のとおりです。

  • ①元の表とは別のところに抽出結果を表示したいとき
  • ②リストに検索対象データが1つしかないとき、もしくは1つ目を抽出すればよいとき
  • ③複数条件を指定するときは、配列数式を使う

INDEX関数は、指定したセル範囲から、指定した行番号・列番号がクロスするセルを抽出します。行番号・列番号のうち、どちらかだけ指定してデータを抽出することも可能です。

=INDEX(セル範囲,行番号,列番号)

MATCH関数は、検索範囲から検索値を探して、検索範囲内の位置を数字で表します。

=MATCH(検索値,検索範囲,[検索方法])

この2つを組み合わせることで、以下のように検索できます。

▼ 縦方向に検索するとき:行番号をMATCH関数に置き換える

=INDEX(セル範囲,MATCH(検索値,検索範囲,[検索方法]),列番号))

▼ 横方向に検索するとき:列番号をMATCH関数に置き換える

=INDEX(セル範囲,行番号,MATCH(検索値,検索範囲,[検索方法]))

次項では、単独条件と複数条件の指定方法をそれぞれご紹介します。

2-1.単独条件で文字列を検索する

この関数を使うシチュエーションは、VLOOKUP関数とほぼ同じです。ただし、検索場所と検索方向を自由に設定できるため、さまざまな表のデータ抽出に役立てられます。

2-1-1.単独条件の使用例

ここでは、縦方向にデータを検索する方法をご紹介します。
セルC12で略称を指定して、カタログ送付状の宛名を自動抽出する例を見てみましょう。

=INDEX(セル範囲,MATCH(検索値,検索範囲,[検索方法]),列番号)

■INDEX関数
セル範囲 カタログ送付先一覧全体
行番号 MATCH関数で抽出
列番号 選択したセルの範囲の左から何番目かを入力
B17を起点として、ショールーム名は「1」担当者名は「2」
■MATCH関数
検索値 セルC12の略称を参照
検索範囲 カタログ送付先一覧の略称のみ指定
※検索範囲を自由に指定できるため、VLOOKUP関数より汎用性が高い
検索方法 0を指定(完全一致)

以下の図のように、MATCH関数は、略称($D$15:$D$20)から略称入力した値(C12)の大阪を探して、範囲内の位置「3」を抽出できます。INDEX関数では「大阪ショールーム」を抽出できます。

2-2.複数条件で文字列を検索する

続いては、出荷実績から取引先名と商品名を組み合わせて、データを抽出する方法を解説します。複数条件で検索するときは、配列数式を活用します。

2-2-1.配列数式とは

配列数式とは、複数セルの計算を1度に処理する機能です。数式を入力した後、Ctrl+Shift+Enterキーを押すと、数式が{}で囲まれて配列数式となります。
※お使いのExcelによっては、{}で囲まなくても計算できます。

2-2-2.複数条件の使用例

複数条件で抽出するときは、MATCH関数の検索値と検索範囲を「&」でつなげて指定します。INDEX関数は、単独条件と同じです。

出荷実績表から取引先名と商品名を組み合わせて検索して、出荷日・出荷金額を抽出する記述内容は、以下のとおりです。

=INDEX(セル範囲,MATCH(検索値1&検索値2,検査範囲1&検査範囲2,[検索方法]),列番号)

■INDEX関数
セル範囲 出荷実績表全体
行番号 MATCH関数で抽出
列番号 セル範囲の左から何番目かを入力
出荷日は「1」出荷金額は「6」
■MATCH関数
検索値 取引先名&商品名 セルB3&C3
検索範囲 出荷実績表の取引先名欄&商品名欄
B11:B16&C11:C16
検索方法 0を指定(完全一致)

3.フィルターを用いた方法

フィルターは、複数の検索対象を複数の条件で抽出できる機能です。
以下のような条件のときに活用できます。

  • ①元の表そのものを変化させて抽出するとき
  • ②複数の検索対象を抽出するとき
  • ③複数条件で抽出するとき

3-1.複数の条件に合う行を抽出する

フィルター機能を使用すると、表のすべての項目を検索対象にできます。日付・文字・数値を自由に選んで抽出できるため、あらゆる角度からのデータ集計や分析などに役立ちます。

3-1-1.フィルターの使用例

フィルターの使い方を解説します。,br>まずは、表の一部を選択します(画像ではA2セル)。次に、【データ】タブの【フィルター】をクリックすると、見出しにプルダウンが表示されます。

プルダウンメニューを開いて選択肢をチェックすることで、データ抽出の条件を絞ることが可能です。プルダウンメニューに複数のチェックを入れることもできます。

上記のように、「aaa文具店」で条件を絞り「OK」をクリックすると、「aaa文具店」だけのデータを抽出できます。

さらに、商品名を「蛍光ペン」で絞ると「aaa文具店」の「蛍光ペン」だけ表示できます。

複数の条件を使って、素早く情報を抽出したい場合に有効です。出荷管理をはじめ、店舗の商品管理や在庫管理などにも役立ちます。

4.その他、検索条件を応用した方法

Excelには、ほかにもさまざまなデータ抽出方法があります。
例とともに応用方法を紹介します。

4-1.文字列から文字を抽出する

下記の4つの関数を組み合わせることで、文字列から文字を抽出できます。

=FIND(検索値,文字列,[検索開始位置])
=RIGHT(文字列,文字数)
=LEFT(文字列,文字数)
=LEN(文字列)

番号①のFIND関数は、文字列から文字を検索して、何番目にあるかを返します。
以下の図では、検索値を[” ”]として空白を検索しています。

番号②③のRIGHT関数・LEFT関数は、文字列の末尾(右端・左端)から指定した文字数の文字を返します。

番号の④LEN関数は、文字列の文字数を返す関数です。

これらを組み合わせて、「空白の前だけ」「後だけ」を取り出してみましょう。

■⑤前だけ取り出す

FIND関数で抽出した空白までの文字数から、空白1つ分を「-1」して、LEFT関数で左から「bbdd社製」を抽出します。

■⑥後ろだけ取り出す

文字列の後ろだけ取り出す場合には、セル内(B8)の全体の文字数をLEN関数でカウントしたあと、FIND関数で空白までの文字数を差し引くことで、データを抽出できます。

「LEN関数:全体の文字数」ー「FIND関数:空白までの文字数」=「4」
RIGHT関数で右から「4」文字を抽出すると、「消しゴム」というデータが表示されます。

4-2.数字を分類する

数字をIF関数で条件分岐して分類する方法があります。
以下のように記述します。

=IF(論理式,真のとき,[偽のとき])

有休消化率が80%より高いときに「良」と表示し、それ以外は「確認」と表示します。以下の図では、営業1課に「確認」が表示されているため、有給消化率が低い部署ということが分かります。

5.最適な方法を選んで業務を効率化しよう

Excelの表からデータを検索・抽出するための関数や機能をご紹介しました。使用する関数・機能によって活用方法が異なるため、シーンに合わせて取り入れることが重要です。Excelでのデータ抽出の方法をマスターすれば、データ検索のスピードが向上するほか、目視チェックによるミスを削減することにもつながります。関数やフィルターなどの機能を活用して、日々の業務効率化を図ってみてはいかがでしょうか。

Excelスキルを資格にする!
主要なExcel資格「比較資料」はこちらからダウンロード



プライバシーマーク

© Certify Inc. All Rights Reserved.

ページの先頭へ