検索値が検索対象の列のデータと完全一致ではなく、部分的に一致する場合は、XLOOKUP関数やVLOOKUP関数の引数の[検索値]にワイルドカードを使って抽出しよう。
部分一致検索抽出
例題1|部分一致検索で抽出する(XLOOKUP)
- [担当]を求めるセル(B3セル)を選択し、「=XLOOKUP(」と入力する。
- [検索値]…「20日」のセル(B2セル)を「”*”&B2&”*”」で入力する。
- [検索範囲]…検索する「利用日」のセル範囲を選択する。
- [戻り範囲]…抽出する「担当」のセル範囲を選択する。
- [見つからない場合]…[””](空白)を入力する。
- [一致モード]…「2」と入力する。
- [検索モード]…省略して、「Enter」キーで数式を確定する。
【数式】=XLOOKUP(“*”&B2&”*”,A6:A7,B6:B7,””,2)
数式の解説
「=XLOOKUP(“*”&B2&“*”,A6:A7,B6:B7,“”,2)」の数式は、B2セルの「20日」を含む利用日をA6セル~A7セルの範囲から検索し、一致した行にあるB6セル~B7セルの担当「堀川」を抽出する。ワイルドカードを[検索値]に指定する場合は、引数の[一致モード]に「2」を指定して数式を作成する。
Excelデータダウンロード
以下のリンクを右クリックし、Excelデータをダウンロードください
Excel-sample1.xlsx
例題2|部分一致検索で抽出する(VLOOKUP)
- [担当]を求めるセル(B3セル)を選択し、「=VLOOKUP(」と入力する。
- [検索値]…「20日」のセル(B2セル)を「”*”&B2&”*”」で入力する。
- [範囲]…抽出する表のセル範囲を選択する。
- [列番号]…抽出する列の番目「2」を入力する。
- [検索方法]…「0」と入力して、「Enter」キーで数式を確定する。
【数式】=VLOOKUP(“*”&B2&”*”,A6:B7,2,0)
数式の解説
「=VLOOKUP(“*”&B2&“*”,A6:B7,2,0)」の数式は、B2セルの「20日」を含む利用日をA6セル~B7セルの範囲から検索し、一致した行にある2列目の担当「堀川」を抽出する。
Excelデータダウンロード
以下のリンクを右クリックし、Excelデータをダウンロードください
Excel-sample2.xlsx
応用1|DGET関数
この例の数式を使えば、数式をコピーしてほかの行にも求められる。ほかの行に求める必要がなく1件だけ抽出するなら、DGET関数を使えばスピーディーに抽出可能。ただし、データベース関数のため、列見出しを付けた1行1件形式の表である必要があり、あらかじめ、
❶条件枠を作成して、条件の上に表と同じ列見出しをつける必要がある。また、部分一致のデータを抽出するなら、❷条件にワイルドカードをつけて入力しなければならない。❸「担当」を抽出するセル(B3セル)を選択し、「=DGET(」と入力する。❹ [データベース]…抽出する表のセル範囲を列見出しを含めて選択する。❺[フィールド]…抽出する列見出しのセルを選択する。❻[条件]…入力した条件を列見出しを含めて範囲選択して、「Enter」キーで数式を確定する。
【数式】=DGET(A5:B7,B5,A2:A3)
Microsoft365 :DGET関数
Excelデータダウンロード
以下のリンクを右クリックし、Excelデータをダウンロードください
Excel-application1.xlsx
コメント