• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:【エクセル】マスターから条件一致の全データ抽出)

【エクセル】マスターから条件一致の全データ抽出

このQ&Aのポイント
  • エクセルのマスターデータシートから指定の条件に一致する全データを抽出する方法について教えてください。
  • マスターデータシート内には個人シートごとにデータが分かれており、個人名でフィルタリングして一覧表を作成したいです。
  • 関数やVBAなど、どの方法でも構いませんので、詳しい手順を教えていただけますか?

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

マスタシート:   A     B  C   D列 1 検索キー  名前 商品  項目 2 鈴木-0001 鈴木 商品1 外注1 3 山田-0001 山田 商品2 外注2 4 田中-0001 田中 商品3 外注3 5 鈴木-0002 鈴木 商品4 外注4 6 鈴木-0003 鈴木 商品5 外注5    : A2: =IF(B2="","",B2&TEXT(COUNTIF($B$2:B2,B2),"-0000") 以下コピー 鈴木シート:   A  B  C   D 1 鈴木 3件 2 番号 名前 商品  項目 3  1 鈴木 商品1 外注1 4  2 鈴木 商品4 外注4 5  3 鈴木 商品5 外注5 B1: =COUNTIF(マスタ!B:B,A1) A3: =IF(ROW(A1)>$B$1,"",ROW(A1)) 以下コピー B3: =IF($A3="","",VLOOKUP($A$1&TEXT($A3,"-0000"),マスタ!$A:$AZ,COLUMN(),FALSE)) 右にコピー,下にコピー #マスタシートにどうしても絶対検索キー列を用意したくないときは,右端の邪魔にならない列なり別シートなりに作成しても構いませんが,その時はVLOOKUP関数は使えないのでINDEX(MATCH())関数などで代用します。 #メンバーシートのA1セルやB1セルは,このシートが「鈴木」のシートだと指示するためにと計算の高速化のために用意していますが,必要に応じて何なりと工夫して作成して構いません。 #想定データ数が多いので,良く寄せられるご相談ですが回答に出てくる配列数式では重すぎて,実用には適しません。

shimaciman1979
質問者

お礼

keithinさま 早速のお返事、どうもありがとうございました。 お陰様で解決いたしました。 本日朝から格闘していたものですから、ちょっと涙が出そうです。 本当にありがとうございました。 今回初めてOKWaveに登録&質問をさせて頂いたのですが、このように知識・技術の共有を実感させて頂けたことも新たな発見でした。 keithinさま、重くて実用には適さないとのことですが、諸々工夫してみたいと思います。 ありがとうございました。

その他の回答 (1)

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.2

簡単なマクロ(VBA)を体感してみて下さい。 先ずは個人シートの作成だけですが以下の手順になります。 マスタには見出し行ありとしています(見出し行が無い場合、先頭に挿入して下さい) (1)仮に個人シートのA1にマスタの担当者列同様の文字列(仮に担当者)、A2に担当者名を入力 (2)ツール→マクロ→マクロの記録開始→ショートカットキー登録(後々の操作が楽になる) (3)データ→フィルタ→フィルタオプションの設定→指定した範囲を選択、リスト範囲欄にマスタシートの抽出列sheet1!A:C(とびとびは駄目です)、検索条件範囲欄に$A$1:$A$2,抽出範囲欄にA3→OK (4)ツール→マクロ→マクロの記録終了 後は自動ではありませんが、各個人シートで(1)の操作とショートカットキー押下で個人別情報が抽出できます。 因みにalt+F11キー押下→VBE画面の欄にある標準モジュール下のModule1をダブルクリックで以下の様なコードが表示されます。 AdvancedFilterで検索すれば解説サイトがあります。 Sub Macro1() Sheets("Sheet1").Columns("A:C").AdvancedFilter Action:=xlFilterCopy, _ CriteriaRange:=Range("A1:A2"), CopyToRange:=Range("A3"), Unique:=False End Sub

shimaciman1979
質問者

お礼

mu2011 遅くにご回答頂いておりまして恐縮です。 ありがとうございました。 教えて頂いたことやってみました! 完璧に抽出できますね! ありがとうございます! ただこれだと、マスタの内容が変化した時に自動更新できないので、本件にては適用できないのですが、これはデータ量の多い情報処理などで非常に使いやすいテクニックだと思いますので、めちゃくちゃ助かります!今後是非使っていきたいと思います。 僕も今回の事を機にVBAの領域に踏み込もうと思っております。 また何か伺うことがあるかもしれませんが、 その際はよろしくお願いいたします。 ありがとうございました。

関連するQ&A

専門家に質問してみよう