• ベストアンサー

Excel 表の連動

Excel2007を使っています。 例えば、以下のような表があるとします、    表1の条件の項目でフィルター機能を使い、Aを選択すると番号1,4,6のレコードが抽出されると思います。 それと連動して、表2も番号1,4,6のレコードを抽出するためにはどうすればよいでしょうか? 関数でも、VBAでもどちらでもかまいません。 どうぞよそしくお願い致します。

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

  • ベストアンサー
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.1

関数を使って対応します。 ただし、式が複雑になりますと計算に負担がかかります。 式を簡単にして対応するためには作業列を使って対応することでしょう。 シート3にお望みの表を表示させることにします。 シート1は表1で2行目のA2セルからD2セルまでに論文番号、タイトル、著者、条件1と項目名が有るとして例えば条件1でAの文字を条件とするのでしたらE1セルにAと入力します。E3セルには次の式を入力して下方にドラッグコピーします。 =IF(E$1="","",IF(D3=E$1,MAX(E$2:E2)+1,"")) シート2にはお示しの表2のデータが有るとして2行目のA2セルからD2セルにかけて論文番号、試験体、特長、結果の項目名が入力されているとします。 E3セルには次の式を入力して下方にドラッグコピーします。 =IF(COUNTIF(Sheet1!A:A,A3),IF(INDEX(Sheet1!E:E,MATCH(A3,Sheet1!A:A,0))="","",MAX(E$2:E2)+1),"") そこでお求めの表ですがA2セルからD2セルにはシート2の2行目の項目を名入力します。 A3セルには次の式を入力して右横方向にドラッグコピーしたのちに下方にもドラッグコピーします。 =IF(OR(ROW(A1)>MAX(Sheet2!$E:$E),A$2=""),"",INDEX(Sheet2!$A:$D,MATCH(ROW(A1),Sheet2!$E:$E,0),COLUMN(A1))) これでシート1のE1セルにBを入力すればBに関するデータがシート3に表示されることになります。

okomeumashi
質問者

お礼

KURUMITOさん お礼が遅れて申し訳ございません。 非常に助かりました。 またわからないことがありましたらどうぞよろしくお願いいたします。

関連するQ&A