
Excelですが、検索キーに、同一データ(レコード)が複数あるとき、検索して、その全部を抽出表示する方法を教えてください。
Vlookupは、同一データが複数あるとき、最初の行(レコード)を1つだけ抽出してきます。2つ目、3つ目の行は抽出できませんが、その全部を抽出する方法がありますでしょうか。
例えば、以下の例で、「A株式会社」をキーに検索した場合、<検索結果>シートのように、該当のレコード3つ(行2~4)を抽出して表示するようにしたいのですが、方法はありますでしょうか。よろしくお願いします。
<データシート>
列A 列B 列C 列C
行1 No 会社名 所属 担当者
行2 1 A株式会社 ○事業部 坂下順人
行3 2 A株式会社 △事業部 滿山友人
行4 3 A株式会社 △事業部 目標達子
行5 4 B株式会社 設計部山下清人
行6 5 B株式会社 営業部横浜美人
行7 6 C株式会社 営業部川崎次郎
行8・・・・・・・・・・・・
<検索結果:別のシートにおいて>
行1 会社名 所属 担当者
行2 A株式会社 ○事業部 坂下順人
行3 A株式会社 △事業部 滿山友人
行4 A株式会社 △事業部 目標達子
No.5ベストアンサー
- 回答日時:
#03です
>最後のROW(T1)で、T1を参照しておりますが
ROW(T1)は「1番目」を意味しています。T1セルに何もなくても関係ありません。コピーしたの行はROW(T2)になりますが、これは2番目のという意味です
#REF!エラーになりますか?
私が示した条件と何か変えていませんか?
別シートのA1に「抽出する会社名」を入力してあれば、回答したような結果になるはずですが‥ (テストしてありますので)
ただし2000行もあるならVBAの方が良いかもしれません
きっと「シートが重くなる」と思います
ありがとうございました。お手数をおかけしました。
成功しました。完璧です。
(式は、このHPから、Excelへコピペしましたが、データシートのデータをA列から入れておりました。B列から入れましたところ、完璧に動作しました。)
今回、必要な該当不要なレコードは要らないところがミソですが、該当データは、10レコード以内ですので、10レコード分だけに、この式を入れておけば十分に目的を果たせます。
来週に実機でやって見たいと思います。
しかし、残念ながら、まだ、式の構成は解析できておりません。
もし、各関数で何をしているか、さらに、ご教示いただけると幸ですが・・・(特に、Index関数はよく分かりません)
ありがとうございました。
No.4
- 回答日時:
オートフィルターと関数の組み合わせですが
<データシート>
列A 列B 列C 列C
行1 No 会社名 所属 担当者
行2 1 A株式会社 ○事業部 坂下順人
行3 2 A株式会社 △事業部 滿山友人
行4 3 A株式会社 △事業部 目標達子
行5 4 B株式会社 設計部 山下清人
行6 5 B株式会社 営業部 横浜美人
行7 6 C株式会社 営業部 川崎次郎
のA列を=SUBTOTAL(3,C$2:C2)入れて下までコピィしておくと
オートフィルターをかけた後の表示に対して連番が出ます。
別シートには
1
2
3
4
と番号だけ準備しておいて =VLOOKUP(A1,データシート!A:D,2,FALSE)
とかで番号を検索値にしてVLOOKUP関数を貼り付ける。
hallo-2007さま
ご回答ありがとうございました。
ご教示の方法は、別の業務処理に既に使っており、重宝しております。
今回は、自動で検索し該当データを全て表示したいので、その方法を探しておりました。
No.3
- 回答日時:
よく見かける質問です。
事例もたくさんありますが、関数式は難しくなりますよ。例えば適当なシートのA1セルに「A株式会社」と入力して、そのシートの適当なセルに以下の式を貼り付けて、下方向、および右方向にコピーしてください。
=INDEX(データシート!B:B,SMALL(INDEX(SUBSTITUTE((データシート!$B$1:$B$100=$A$1)*1,0,10^5)*ROW(データシート!$B$1:$B$100),),ROW(T1)))
すると以下のような結果になります。
A列 B列 C列
1行目 A株式会社
2行目 A株式会社 ○事業部 坂下順人
3行目 A株式会社 △事業部 滿山友人
4行目 A株式会社 △事業部 目標達子
5行目 #VALUE! #VALUE! #VALUE!
5行目以下のエラーを表示させたくないなら条件を追加して以下のような式になります
=IF(COUNTIF(データシート!$B:$B,$A$1)>=ROW(T1),INDEX(データシート!B:B,SMALL(INDEX(SUBSTITUTE((データシート!$B$1:$B$100=$A$1)*1,0,10^5)*ROW(データシート!$B$1:$B$100),),ROW(T1))),"")
でもこのような式はデータ行数が多くなると「とっても重く」なります。そういう意味では#02さんが言われるように「現実的ではない」かもしれません。
抽出は一回切りでよいのであれば(データシートにデータを追加したら別シートの抽出結果がリアルタイムに変更される必要がなければ)、オートフィルタやフィルタオプションで条件を指定して抽出することも可能です。関数が理解できなければそちらをお使いください。
この回答への補足
zap35さま
ご教示ありがとうございました。
早速、式を、コピペしてテストしてみましたが、#REF! のエラー表示なります。
最後のROW(T1)で、T1を参照しておりますが、T1には、何もデータがないように見えますが、これはOKでしょうか?
あまり使ったことのない関数(INDEX,SMALL,ROW)の組み合わせですので、この式の理解に少々時間が必要です。
なお、実際は、データ総数が200件はあり、検索該当の複数件数は、MAX6件ですので、検索結果が、200行になるのでは、この式やはり実務上は使うのは無理と思われます。VBAしかないのでしょうか。(@^^)/~~~
No.2
- 回答日時:
> オートフィルター機能は存じておりますが
#1のmerlionXXです。
関数で複数データを自動表示させるのは非常に難しいです。
どうしてもやりたければ=IF([Book1.xls]Sheet1!$B2="A株式会社",[Book1.xls]Sheet1!B2,"") のような式を必要範囲にオートフィルで広げ、表示されたデータを作業列を使って上詰めで表示させることでしょうか。
わたしなら関数はあきらめVBAでやりますが。
この回答への補足
merlionXXさま
お手数をおかけしたました。
Excelで一連の事務処理処理をするように組み立てておりますが、この部分の自動化が残った部分です。これが、結構うっとうしいので、自動化したいと思った次第です。VBAは私が退職した時に、メンテナンスが難しかろうと思い、導入には慎重です。
ありがとうございました。
No.1
- 回答日時:
オートフィルターで抽出できますよ。
データを選択し、メニューの「データ」、「フィルタ」、「オートフィルタ」でB列の▼をクリックし、「A株式会社」をクリック
表示された結果をコピーして別シートに貼り付ければOKです。
(エクセル2007なら手順が多少違うかもしれません)
この回答への補足
merlionXXさん、ありがとうございます。
質問が不十分でした。
オートフィルター機能は存じておりますが、そうでなく、データのExcel Bookとは別のExcel Bookにおいて、検索した結果の、該当のレコードを全て、自動で表示したいのです。
よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(Microsoft Office) Outlookメール 連絡先の検索について 〈 ご説明 〉 Windows PC の Outlook 1 2022/09/23 14:43
- Excel(エクセル) VLOOKUP が機能しない、その原因は何 ? 8 2022/10/19 12:06
- 法学 全部取得条項付株式の取得と引換えにする株式の発行 申請書について 1 2022/12/21 17:32
- その他(IT・Webサービス) 不動産会社を起業し、ホームページを作りました。その際に、弊社は「◯◯不動産(株)」なのですが、県外に 1 2022/05/26 12:02
- Excel(エクセル) エクセルの数式で教えてください。 5 2023/02/10 15:11
- Excel(エクセル) Excelについて教えてください。 帳票データがあります。 アクセスに取り込むため、 データ形式にし 1 2022/06/08 19:59
- 医学 株式会社 3 2022/04/03 18:47
- 法学 全部取得条項付種類株式について 3 2023/01/28 10:53
- 法学 全部取得条項付種類株式について 1 2022/12/20 21:45
- Excel(エクセル) 至急です><Excelの関数を教えてください。 2 2022/03/22 17:56
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
excelの不要な行の削除ができな...
-
エクセルファイルのシート毎の容量
-
複数シートからデータを拾って...
-
Excelでシートの違うデータでグ...
-
シート削除して同名シート追加...
-
Excelで日付変更ごとに、自動的...
-
エクセル 縦に長い表の印刷時...
-
【マクロ】同じフォルダ内にあ...
-
オートフィルタで抽出したデー...
-
VBAで CTRL+HOMEの位置へ移動...
-
他のシートの一番下の行データ...
-
時間帯の重複を除いた集計について
-
Excelのセル横にリスト表示をす...
-
EXCELで2つのファイルから重複...
-
Googleスプレッドシートフィル...
-
エクセルVBAで、特定文字から始...
-
複数シートのデータを行列を入...
-
トランジスタの選び方
-
Excelでセル内の不特定位置の(...
-
エクセルのカメラ機能について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
excelの不要な行の削除ができな...
-
Excelでシートの違うデータでグ...
-
エクセルファイルのシート毎の容量
-
複数シートからデータを拾って...
-
シート削除して同名シート追加...
-
Excelで日付変更ごとに、自動的...
-
VBAで CTRL+HOMEの位置へ移動...
-
エクセル 縦に長い表の印刷時...
-
EXCELで2つのファイルから重複...
-
Googleスプレッドシートフィル...
-
トランジスタの選び方
-
他のシートの一番下の行データ...
-
時間帯の重複を除いた集計について
-
EXCEL の表を一行ずつシートに...
-
エクセルで名簿を50音で切り分ける
-
オートフィルタで抽出したデー...
-
エクセルのカメラ機能について
-
エクセル VBA VLOOKUP
-
【エクセル」 特定のセルで条件...
-
エクセル マクロ "特定の日付...
おすすめ情報