• ベストアンサー

Excelで該当する項目を抜き出す

A列の項目(A~H)に対応する個人名(あ~く)について、その個人名に対応するすべての項目を表記するにはどのようにしたら良いでしょうか、ご教示のほど宜しくお願いいたします。 表が間違っていたら申し訳ありません。Excel2007です。

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

  • ベストアンサー
  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.3

質問の要旨が分かりませんので確認します。 1.元データはA列からD列で良いでしょうか? 2.B列からD列の個人名に対してA列とF列の対比でG列からI列へ項目を振り分けることでしょうか? (B4の"い"がG4の"F"に対応する論理が分かりません。) 当方の勝手解釈ですが、下記の関数式をG2セルへセットして右および下へコピーすると貼付画像のようになります。 Excel 2013で動作テストしましたがExcel 2007でも同じ結果を得られると思います。 =IF(B2="","",INDEX($A:$A,MATCH(B2,$F$1:$F$9),1))

その他の回答 (2)

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.2

 Ctrl+Shift+Enterの操作が不要で、データを入力するだけで、結果が自動的に表示される方法です。  今仮に、元の表がSheet1に表示されていて、Sheet1のF列には各個人名が入力済みとなっているものとします。  又、Sheet2のA列を作業列として使用するものとします。  まず、Sheet2のA2セルに次の数式を入力して下さい。 =IF(COUNTIF(INDEX(Sheet1!$B:$B,ROW()):INDEX(Sheet1!$D:$D,ROW()),"><"),"◆"&INDEX(Sheet1!$B:$B,ROW())&"◇"&COUNTIF(A$1:A1,"*◆"&INDEX(Sheet1!$B:$B,ROW())&"◇*")+1&"◆"&INDEX(Sheet1!$C:$C,ROW())&"◇"&COUNTIF(A$1:A1,"*◆"&INDEX(Sheet1!$C:$C,ROW())&"◇*")+1&"◆"&INDEX(Sheet1!$D:$D,ROW())&"◇"&COUNTIF(A$1:A1,"*◆"&INDEX(Sheet1!$D:$D,ROW())&"◇*")+1&"◆","")  次に、Sheet2のA2セルをコピーして、Sheet2のA3以下に貼り付けて下さい。  次に、Sheet1のG2セルに次の数式を入力して下さい。 =IF(INDEX($F:$F,ROW())="","",IF(COUNTIF(Sheet2!$A:$A,"*◆"&INDEX($F:$F,ROW())&"◇*")<COLUMNS($G:G),"",INDEX($A:$A,MATCH("*◆"&INDEX($F:$F,ROW())&"◇"&COLUMNS($G:G)&"◆*",Sheet2!$A:$A,0))))  次に、Sheet1のG2セルをコピーして、Sheet1のH2~I2の範囲に貼り付けて下さい。  次に、Sheet1のG2~I2の範囲をコピーして、Sheet1のG列~I列の3行目以下に貼り付けて下さい。  以上です。  

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.1

例示のレイアウトなら、G2セルに以下の数式を入力してCtrl+Shift+Enterで確定して、右方向および下方向にオートフィルコピーしてください。 =INDEX($A:$A,SMALL(IF($B$2:$D$9=$F2,ROW($B$2:$D$9),1000),COLUMN(A1)))&""

関連するQ&A