• ベストアンサー

エクセルで条件に合わせて複数データを抽出したい

シート1に基本データ(基データ)があり、シート2のセル内に条件を入れて、該当のデータをシート1から引っ張りたい。 具体的には、シート1に基本データ  ナンバ- 1 1 2 2 2 3 4 4 4  該当データ A B C D E F G H I シート2に 条件内容 1を入れてA B (複数データ)      2を入れてC D E       3を入れてF -----と、こんな具合になりたいのですが?   VLOOKUP は複数の抽出なので駄目でした。   

  • HGY-3
  • お礼率100% (29/29)

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.4

この問題はエクセル関数での抜き出し問題で難しいですね。 関数の仮面を被ったVBAの配列関数でやって見ます。 -- 例データ Sheet1のA1:B9 番号 内容 1 a 1 b 2 c 3 d 4 e 3 f 2 g 3 h ーーー 準備 シートでALT+F11 挿入ー標準モジュールで出る画面に下記を張り付け。 ーーー Function aa(a, b) Dim x() As Variant c = a.Column k = 1 d = Worksheets("Sheet1").Range("A65536").End(xlUp).Row ReDim x(1 To d, 0) For i = 1 To d If Worksheets("Sheet1").Cells(i, c) = b Then ' MsgBox Worksheets("Sheet1").Cells(i, "B") x(k, 0) = Worksheets("Sheet1").Cells(i, "B") k = k + 1 End If Next i aa = x End Function ーーー Sheet2のA1に番号3 B2:B10とかを範囲指定して(番号が変わったとき、最大該当数を考慮すること) =aa(Sheet1!A2,A1) と入れて SHIFT、CTRL、ENTERのキーを同時押しする。 結果 d f h そのときB2:B20とか適当行数に書式・表示形式・ユーザー定義で #を設定して0を出ないようにする。 ーー 私は中間列や行を使ってやる方法で、imogasi方式を出してます。 Googleなどでimogasi方式で照会すると過去の質問回答が沢山出ます。

HGY-3
質問者

お礼

ありがとうございました。

その他の回答 (3)

  • sunrisejp
  • ベストアンサー率34% (9/26)
回答No.3

シート1のA1セルから順番に基本データを入力します。 ナンバ- 1 1 2 2 2 3 4 4 4 該当データ A B C D E F G H I 次に、シート2のA1とA2セルに ナンバ- 該当データ を入力。 そして、シート2のB2セルに =IF(Sheet1!B1=$B1,HLOOKUP($B1,Sheet1!B1:B2,2),"") と入力し、この関数を、C2からJ2セルにコピーします。 シート2のB1セルにナンバー数字を入力すると、 該当データが抽出するようになります。

HGY-3
質問者

お礼

ありがとうございました。

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

次の方法は如何でしょうか。 シート1のA列にナンバー、B列にデータとして、シート2のA列にナンバーを入力すると右隣列方向にデータを抽出します。 次の配列数式をシートA2に設定し、縦横に必要分コピーして下さい。 尚、配列数式の為、入力完了時にshift+ctrl+enterキーを同時押下して下さい。 =IF(COUNTIF(Sheet1!$A:$A,$A1)>COLUMN(A$1)-1,INDEX(Sheet1!$B:$B,SMALL(IF(Sheet1!$A$1:$A$100=$A1,ROW(Sheet1!$A$1:$A$100),99999),COLUMN(A$1))),"")

HGY-3
質問者

お礼

ありがとうございました。

  • shintaro-2
  • ベストアンサー率36% (2266/6244)
回答No.1

例にあげられたデータ形式では、縦横入れ替えた方がエクセルでは便利かと思います。  シート1のデータをシート2にリンク貼り付け(しかも、行と列を入れ替えて)して、  オートフィルタで処理するのが一番簡単です。  indexに対して、返されるデータが何件あるかわからないので、 関数で処理するためには、予想される出力欄にすべて入力しておくことが必要です。 ですので、マクロ(VBA)で処理するしかないかと思います。

HGY-3
質問者

お礼

ありがとうございました。

関連するQ&A

  • Excelで複数条件で抽出した複数データを出力

    Excelで複数条件で抽出した複数データを出力したい Shett1のセルAとセルBの複数条件で、Sheet2を検索し一致したSheet2のセルCを Sheet1の該当するセルCに入れたいのです。 それを関数でするのはどうしたらいいのでしょうか? Sheet1 A B NAME ID(タイトル) いちご A01 いちじく A02 かき B01 すいか C01 なし D01 ぱいなっぷる E01 ばなな E02 ぶどう F01 みかん G01 めろん H01 もも I01 りんご J01 Sheet2 A B C 名前 ID 漢字(タイトル) みかん G01 蜜柑 いちご A01 苺 ぶどう F01 葡萄 りんご J01 林檎 もも I01 桃 かき B01 柿 なし D01 梨 すいか C01 西瓜 いちじく A02 無花果

  • エクセルで、条件にあう複数の行を別のシートに抽出する

    《どなたか、お教え下さい》   エクセルで、条件にあう複数の行を別のシートに抽出してまとめる。 「sheet1」の下記の基本データを「sheet2」に「得意先」ごと「日付」の早い順にまとめたいのでが。関数を使ってできないものか、どなたかお教え下さい。「マクロ」や「Access」は使用したことがないので、関数を使ってやりたいと思いますが、できるものでしょうか。よろしくお願いします。 sheet1 番号 得意先 日付 商品名 商品詳細 金額 備考 1   A 2   B 2   B 4   D 5   E 6   F 2   B 3   C 5   E   A    B  番号  得意先   1   A      2   B   得意先名は、番号を入力することで表示されるように   3   C   関数「VLOOKUP」を使って表示させるようにしていま   4   D   す。    5   E   6   F  

  • エクセル 複数条件でのLOOKUP

    エクセルで、特定のキーで別表を参照してそこから値を表示するにはVLOOKUPを使用すると思いますが、複数条件でLOOKUPする事は可能でしょうか。 例えば、 シート1のA列とD列 シート2のB列とF列  2つの条件に合う(シート1A列=シート2B列 and シート1D列=シート2F列)レコードをシート2のG列からシート1のE列に表示したいと言う場合です。  シート1   A B C D E           1 01 ** ** 01       2 01 ** ** 02 うう       3 05 ** ** 01 ああ          ↑  シート2   A B C D E F G          1 ** 08 ** ** ** 01 いい       2 ** 01 ** ** ** 02 うう       3 ** 05 ** ** ** 01 ああ 判りにくい説明で申し訳ありませんが、よろしくお願いいたします。

  • エクセルで別シートのデータを抽出

    ~シートA~   A B C D E F G  ┌─────────────┐ 1│ │10│20│30│40│50│60│  │ │───────────│ 2│ │11│21│31│41│51│61│  │4│───────────│ 3│月│12│22│32│42│52│62│  │ │───────────│ 4│ │13│23│33│43│53│63│  │ │───────────│ 5│ │14│24│34│44│54│64│  └─────────────┘ 6  ┌─────────────┐ 7│ │10│20│30│40│50│60│  │ │───────────│ 8│ │11│21│31│41│51│61│  │5│───────────│ 9│月│12│22│32│42│52│62│  │ │───────────│ 10│ │13│23│33│43│53│63│  │ │───────────│ 11│ │14│24│34│44│54│64│  └─────────────┘         ・         ・         ・ ~シートB~   A B C D E F G  ┌─────────────┐ 1│ ▽ │ │ │ │ │ │  │ │───────────│ 2│ │ │ │ │ │ │ │  │○│───────────│ 3│月│ │ │ │ │ │ │  │ │───────────│ 4│ │ │ │ │ │ │ │  │ │───────────│ 5│ │ │ │ │ │ │ │  └─────────────┘ ↑はリストボックスで1月~12月の値が入っている。 上記条件でシートBのリストボックスから選んだ月のデータをシートAの表から該当する月のデータを全て抽出したいのですが、どのようにすればよろしいでしょうか。

  • Excel 複数の項目合致するデータを抽出したい

    是非、よろしくお願いいたします。 以下の状況です。 sheet1には A、B、C、Dという4列があります。データは1000行くらいです。 sheet2には A、B、C、Eという4列があります。データは2000行くらいです。 この状況で、sheet1のD列の右に新しい列を作り、 「sheet1の(例えば)A1、B1、C1と合致する行のsheet2のE列データ」を、 sheet2のABC列範囲を検索して抽出したいのです。 項目が一つであればvlookup関数でできるものを「複数項目に合致」のため上手くいきません。 この3列のデータを結合して一つにしてみましたが、結合後のデータが16桁以上のため末尾が「0」になってしまい、正確に検索できません。 何か上記を可能にする方法はないでしょうか? よろしくお願いいたします。

  • Excelで、複数条件で抽出した複数データを別シートに出力したい

    Excelで、複数条件で抽出した複数データを別シートに出力したい sheet1のデータから、sheet2に地区と班を指定してデータを抽出したいのです。 関数でなんとか出来るでしょうか? sheet1 A B C D 地区 班 番 氏名 1 1 1 岩井 雅功 1 1 2 湯浅 将也 1 1 3 滝沢 由宇 1 2 1 根本 さやか 1 2 2 近藤 守 1 2 3 永島 ひろみ 1 2 4 小峰 遥 sheet2 A B C D   E  F 区 班 番 氏名 区 班 1 1 1 岩井 雅功 1 1 1 1 2 湯浅 将也 1 1 3 滝沢 由宇

  • エクセル 複数条件での抽出

    自社名簿(sheet1)と、系列会社の名簿(sheet2) A列:ID番号 B列:氏名 C列:所属グループ D列:支店 共に、同じ表です。  sheet1とsheet2を照らし合わせ、A~Dまでの情報が全て一致する(sheet2に重複してる)該当者のみに  sheet2のE列に★印が反映されるようにしたいのです。 条件が一つですと、沢山の簡易的な関数でわかりやすのですが、 複数の条件での方法が、他の質問者様の回答の説明をみてもしっくりきませんでした。 ご教授宜しくお願いします。

  • 条件1つで複数の値を抽出することはできませんか。

    エクセルのことなのですが、条件1つで複数の値を抽出してきたいと思っています。 しかし、様々な本やインターネットのサイトを参照したのですがうまくできません。 内容なのですが、「シート1」というシートがありこのシートを「シート2」のように番号で分けて、横に並べるようなシートを作りたいと思っています。 シート1 番号 品目 100 A 100 B 101 C 101 D 101 E 101 F 101 G 101 H 101 I 102 J 103 K 103 L シート2 番号 品目 100 A B 101 C D E F G H I 102 J 103 K L すみませんが教えていただけないでしょうか。 よろしくお願いします。

  • Excelで複数条件を満たすデータを抽出

    以下のような場合の、データ抽出方法を教えてください。 Sheet1 "計画”, Sheet2 "実績”があります。 それぞれのSheetの A~Dには、共通列項目である ”都道府県””都道府県コード””品目””品番” が設定されています。 このふたつのSheetをまとめて、項目順に”計画”データの下に”実績”データがくるようなSheetを作りたいのですが、上記4つの条件が全て共通なデータを、関数等と使って抜出すことはできるのでしょうか? If、VLOOKUP、And、”名前をつける”などを組み合わせて、いろいろ考えてみたのですが、複数条件を満たす結果の抽出ができませんでした。 宜しくお願いします。

  • エクセル 複数データ 抽出

    エクセルの複数データの抽出で困っています。 助けてください。 以下の様なシートで別シートから複数のデータを取り出したいのですが・・・・ 他の方の質問を参照したのですがうまく行かなく 皆さんの知識を教えてください。 シート1  テーブル A列     B列    C列   D列 グループ  メーカ   部品  数量  1      A社    AAA   1  1      B社    BBB   2  1      C社    CCC   4  2      F社    ZZZ   3  2      S社    HHH   2  3      以下も同様  3  4  5  5  5 シート2 摘出を考えているのですが シート1のA列グループを選択すると全て摘出する様にしたいです。 シート2 グループ選択 「1」 「2」 を選択すると 1と2が全て摘出される  1      A社    AAA   1  1      B社    BBB   2  1      C社    CCC   4  2      F社    ZZZ   3  2      S社    HHH   2 選択は1と3 2と4 1と5 とか結構なパターンがあります。 VLOOKUP、その他の方の回答例も使用してみましたがうまく出来ませんでした。 関数、マクロ問いませんので どうぞ、お力をお貸し願います。

専門家に質問してみよう