こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Excel 表の連動

Excel2007を使っています。

例えば、以下のような表があるとします、
  
表1の条件の項目でフィルター機能を使い、Aを選択すると番号1,4,6のレコードが抽出されると思います。

それと連動して、表2も番号1,4,6のレコードを抽出するためにはどうすればよいでしょうか?

関数でも、VBAでもどちらでもかまいません。

どうぞよそしくお願い致します。

大変申し訳ございませんが、この投稿に添付された画像や動画などは、「BIGLOBEなんでも相談室」ではご覧いただくことができません。 OKWAVEよりご覧ください。

マルチメディア機能とは?

投稿日時 - 2012-11-12 03:31:03

QNo.7793501

困ってます

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

関数を使って対応します。
ただし、式が複雑になりますと計算に負担がかかります。
式を簡単にして対応するためには作業列を使って対応することでしょう。
シート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に表示されることになります。

投稿日時 - 2012-11-12 09:22:20

お礼

KURUMITOさん

お礼が遅れて申し訳ございません。
非常に助かりました。

またわからないことがありましたらどうぞよろしくお願いいたします。

投稿日時 - 2012-11-22 15:48:54

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問