[[20210713064348]] 『ワイルドカードを使用したVLOOKUP関数について』(あ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『ワイルドカードを使用したVLOOKUP関数について』(あ)

ワイルドカードを使用したVLOOKUP関数について、ご教示お願いします。

ワイルドカードを使用してVLOOKUP関数を使用した際に、該当する結果が複数あひます。
1番上にある結果のみが表示されると思いますが、全ての結果を表示させる方法はありませんでしょうか?

A1のセルに1つ目の結果
A2のセルに2つ目の結果
A3のセルに3つ目の結果

というイメージです。
色々調べたものを入れているのですが、いつもエラーになってしまいます。

関数を使用したものでと考えております。

VBAを使用する方法も考えたのですが、職場の同部署の方に使用できる方に編集できる方がいないため、自分が異動後に変更が生じた場合に修正することが困難なため関数で考えています。

説明不足で申し訳ありませんが、よろしくお願いいたします。

< 使用 Excel:Excel2013、使用 OS:Windows10 >


 VLOOKUPで複数抜き出しは端から考えない方がいいです。
 そもそも使い道として適しません。

 レイアウトや条件を書き込めば、適した式への回答が
 つくと思います。
(コナミ) 2021/07/13(火) 08:25

データがD1:D8あるものとし、「東京」が含まれているデータを
抽出するとします。

 A1: =IFERROR(INDEX($D$1:$D$8,AGGREGATE(15,6,ROW($A$1:$A$8)/ISNUMBER(FIND("東京",$D$1:$D$8)),ROW(A1))),"")

下にコピーします。
(メジロ) 2021/07/13(火) 09:35


コナミ様、メジロ様
ありがとうございます。

メジロ様の記載いただいた関数を入力してみたのですが、空白になってしまいました。
始めを「IF」にしてみたところ、「#NUM!」と表示されてしまいました。

詳しい状況を記載いたします。
現在2つのシートがあり、
シート1
B列に抽出したい文字がB3〜B30000まであります。

シート2
A3に検索したい文字が入っています。
G3〜G33を検索結果を入れるようのセルとしています。
G3〜G33は後方一致の検索としたいので、
ワイルドカードを使用し、「"*"&$A$3」と検索値を設定するつもりです。

分かりづらくて申し訳ありません。

(あ) 2021/07/14(水) 12:34


 詳細設定(フィルタオプション)を使った方法はいかがですか?

 ・元データに見出しをつけることと、
 ・検索条件範囲にも同一の見出しをつけて、
  その一行下のセルに、
   ="=*"&$A$3  
  という式を入れておけばよいと思います。

  つまり、
      B
 1   項目名
 2   ="=*"&$A$3
 として、検索条件範囲をB1:B2に設定します。
(γ) 2021/07/14(水) 13:00

 3万行というデータ量がちょっとアレですけど
 >G3〜G33を検索結果
 ということは該当するものは最大でも「31個」ということですよね。

 AGGREGATE 関数を使った数式なら ↓ な感じ

 G3 =IFERROR(INDEX(Sheet1!B:B,AGGREGATE(15,6,ROW($B$3:$B$30000)/(RIGHT(Sheet1!$B$3:$B$30000,LEN($A$3))=$A$3),ROW(A1))),"")
 下コピー

 ※最後の方にある ROW(A1) の「A1」を変更しないように
 ※ワイルドカードは使ってません(使えません、たぶん)

 以上、参考まで
(笑) 2021/07/14(水) 15:00

 Sheet1のどこか空いた列を作業列として使ってもいいのなら・・・
 例としてC列

 Sheet1
 C3 =IF(COUNTIF(B3,"*"&Sheet2!$A$3),ROW(),"")
 データ最終行まで下コピー

 Sheet2
 G3 =IFERROR(INDEX(Sheet1!B:B,SMALL(Sheet1!$C$3:$C$30000,ROW(A1))),"")
 下コピー

 以上、参考まで
(笑) 2021/07/14(水) 15:37

Y様

ありがとうございます。
後方一致も前方一致も両方出したいのですが、
Y様が教えてくださった方法で両方を抽出することは可能でしょうか?
(あ) 2021/07/15(木) 12:29


笑様

たくさん教えていただき、ありがとうございます。
2つともやってみたのですが、どちらも空白になってしまいました。

IFERRORからIFに変換したところ、エラーが表示されてしまいました。
(あ) 2021/07/15(木) 12:31


 その文字列で終わるもの、もしくは、その文字列で開始するもの を抽出する
 という意味なら、

      B列
 1行  項目
 2    ="=*" & $A$3
 3    ="=" & $A$3 & "*"
 として検索条件範囲を B1:B3に指定します。
 なお、B3は単に =$A$3  でもよい。

 その文字列を含むものなら、前後に*を足せばいいですね。
(γ) 2021/07/15(木) 13:05

Y様

返信が遅くなり申し訳ありません。

無事、設定することができました。
ありがとうございました。
(あ) 2021/07/21(水) 19:07


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.