• 締切済み

シートから該当データ全てを抽出したい

Excelで複数の条件で抽出をし、 該当したデータを全て横に出力したいんですが どのようにするればいいか教えてください。 データ 型  名前   場所 A  ひまわり 公園 A  ひまわり 学校 A  ひまわり 河原 A  さくら  公園  B  ひまわり 公園 B  パンジー 学校 B  ひまわり 公園 C  アジサイ 裏山 というデータがあった場合に 型  名前    A  ひまわり と言う条件の時に 公園 学校 河原 と条件の横にセルを分けて表示されるようにしたいんです。 型  名前   場所1 場所2 場所3  A  ひまわり 公園  学校  河原 色々試してみたのですが全くわかりません。 よろしくお願いします。

みんなの回答

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.2

割とよく見かける質問です。 関数で実現するならこんな式でも可能ですが、式は難しくなりますよ。 条件値をとこに入力するのかが明示されていないので、元データと同じシートのE2セルに「A」、F2セルに「ひまわり」が入力されているものとしました。G2セルに以下の式を貼り付けて右方向にコピーしてください =INDEX($C:$C,SMALL(INDEX(SUBSTITUTE(($A$2:$A$100=$E$2)*($B$2:$B$100=$F$2)*1,0,10^5)*ROW($C$2:$C$100),),COLUMN(A1))) すると E2  F2    G2   H2    I2   J2  A ひまわり 公園  学校  河原  #VALUE! となります。(実際テストした結果です。表示するものがないところはエラーになります) #VALUE!エラーを表示させたくないなら条件判定を追加して以下の式になります =IF(SUMPRODUCT(($A$2:$A$100=$E$2)*($B$2:$B$100=$F$2)*1)>=COLUMN(A1),INDEX($C:$C,SMALL(INDEX(SUBSTITUTE(($A$2:$A$100=$E$2)*($B$2:$B$100=$F$2)*1,0,10^5)*ROW($C$2:$C$100),),COLUMN(A1))),"") データ範囲は2行目~100行目までにしています 行数がもっと多かったり、条件値を入力するセルが異なる場合はご自身で修正してください。 データ行数が多い場合は、シートの動きが重くなりますので実用的とは言えません。VBA等の別の方法を検討される方がよいでしょう。

noname#96418
noname#96418
回答No.1

「公園  学校  河原」のように文字が表示されないといけませんか? ピボットテーブルで、「型」と「名前」を行ラベル(行見出し)、「場所」を列ラベル(列見出し)にして、「場所」を集計されたらどうでしょう。「集計の方法」を「データの個数」にすれば個数が表示されますし、「合計」にすればデータが存在する場合に「0」が表示されます。(空白セルに何か表示してもよいでしょう。)いかがでしょうか。

akina1004
質問者

補足

ダメなんです>< 場所名を表示していきたくて。 ありがとうございます。

関連するQ&A