- 締切済み
シートから該当データ全てを抽出したい
Excelで複数の条件で抽出をし、 該当したデータを全て横に出力したいんですが どのようにするればいいか教えてください。 データ 型 名前 場所 A ひまわり 公園 A ひまわり 学校 A ひまわり 河原 A さくら 公園 B ひまわり 公園 B パンジー 学校 B ひまわり 公園 C アジサイ 裏山 というデータがあった場合に 型 名前 A ひまわり と言う条件の時に 公園 学校 河原 と条件の横にセルを分けて表示されるようにしたいんです。 型 名前 場所1 場所2 場所3 A ひまわり 公園 学校 河原 色々試してみたのですが全くわかりません。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- zap35
- ベストアンサー率44% (1383/3079)
割とよく見かける質問です。 関数で実現するならこんな式でも可能ですが、式は難しくなりますよ。 条件値をとこに入力するのかが明示されていないので、元データと同じシートの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等の別の方法を検討される方がよいでしょう。
「公園 学校 河原」のように文字が表示されないといけませんか? ピボットテーブルで、「型」と「名前」を行ラベル(行見出し)、「場所」を列ラベル(列見出し)にして、「場所」を集計されたらどうでしょう。「集計の方法」を「データの個数」にすれば個数が表示されますし、「合計」にすればデータが存在する場合に「0」が表示されます。(空白セルに何か表示してもよいでしょう。)いかがでしょうか。
補足
ダメなんです>< 場所名を表示していきたくて。 ありがとうございます。