質問: エクセル 複数データ 抽出 エクセルの複数データの抽出で困っています。 助けてください。 以下の様なシートで別シートから複数のデータを取り出したいのですが・・・・ 他の方の質問を参照したのですがうまく行かなく 皆さんの知識を教えてください。 シート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、その他の方の回答例も使用してみましたがうまく出来ませんでした。 関数、マクロ問いませんので どうぞ、お力をお貸し願います。
回答: 補助列を使わずに関数で対応するなら以下のような配列数式を使うことになります。 抽出条件を入力するセルがa2:a5セルに設定されている場合(最大4条件まで選択できる場合)、以下のような数式をd2セルに入力して、ctrl+shift+enterで確定して下方向に適当数オートフィルコピーします(添付画像参照)。 =index(sheet1!a:a,small(if(isnumber(find(transpose($a$2:$a$5),sheet1!$a$1:$a$1000))*(transpose($a$2:$a$5)<>""),row($a$1:$a$1000)*1,1000),row(a1)))&"" e2セルには以下の式を入力してctrl+shift+enterで確定し、右方向に3つ、下方向に適当数オートフィルします。 =if($d2="","",index(sheet1!b:b,small(if(isnumber(find(transpose($a$2:$a$5),sheet1!$a$1:$a$1000))*(transpose($a$2:$a$5)<>""),row($a$1:$a$1000)*1,1000),row(b1))))