教えて! goo のコンテンツに対する取り組みについて

エクセルで特定の項目の行を別のシートに表示したいのですがどうすればいいでしょうか。
うまく説明できないのですが
Sheet1に
   A         B       C      D
あらま せつこ セラピスト 北海道  090-ooo-000
おねむ なおこ 占い師   宮城県  090-ooo-000
あくび りん  相談員   岡山県 090-ooo-000
せかい  ひろこ セラピスト 長野県  090-ooo-000
おあち つるみ 占い師   高知県  090-ooo-000
かふん いやみ  相談員   宮城県 090-ooo-000

というデータのシートがありますが、

Sheet2に占い師だけの
   A         B       C      D
おねむ なおこ 占い師   宮城県  090-ooo-000
おあち つるみ 占い師   高知県  090-ooo-000
という行まるまるの表示ができないでしょうか?

Sheet1にデータがたくさんあり、列をソートして
コピーしていたのですが、今後もSheet1にデータが増えていくので
Sheet1に入力するだけでSheet2に選択された項目の行がそのまま入るように
できないかと悩んでいます。
都合よすぎでしょうか?

gooドクター

A 回答 (4件)

Sheet2のA1セルに抽出したい項目が入力されているなら、表示させたいセルに以下の式を入力し、右方向に4つ、および下方向に適当数オートフィルしてください。



=INDEX(Sheet1!A:A,SMALL(INDEX((Sheet1!$B$2:$B$1000<>$A$1)*1000+ROW($B$2:$B$1000),),ROW(A1)))&""
    • good
    • 5
この回答へのお礼

ありがとうございました。これもすごいです。この方法もできました!MackyNo1さん、本当にありがとうございました。

お礼日時:2010/05/15 23:31

こんにちは!


すでに回答は出ていますので、参考程度で・・・
↓の画像のようにSheet2の F1セルに検索したい職業を入力すると
そのデータが表示されるようにしてみました。

尚、配列数式になってしまいますので、この画面から数式をSheet2のA2セルにコピー&ペーストしただけでは
エラーになると思います。

貼り付け後、F2キーを押す、又はA2セルをダブルクリック、又は数式バー内で一度クリックします。
編集可能になりますので、Shift+Ctrlキーを押しながら、Enterキーで確定します。
数式の前後に{ }マークが入り配列数式になります。
これを列方向と行方向にオートフィルでコピーすると画像のような感じになります。
尚、数式はSheet1の1000行目まで対応できるようにしていますが
データ量によって範囲指定の領域はアレンジしてみてください。

Sheet2のA2セルに
=IF(OR($F$1="",COUNTIF(Sheet1!$B$2:$B$1000,$F$1)<ROW(A1)),"",INDEX(Sheet1!A$2:A$1000,SMALL(IF(Sheet1!$B$2:$B$1000=$F$1,ROW($A$1:$A$999)),ROW(A1))))

として Shift+Ctrl+Enterキーです。

また、作業用の列を設けと配列数式にしなくても可能です。

以上、長々と書きましたが
参考になれば幸いです。m(__)m
「エクセルで特定の項目の行を別のシートに表」の回答画像4
    • good
    • 1
この回答へのお礼

わかりやすい画像をつけていただきありがとうございました。この方法も試してみました。できました。配列数式はなんてことばもこの質問の回答で知ることができました。tom04さん本当にありがとうございました。

お礼日時:2010/05/15 23:37

Sheet2 を開く


Sheet1 の A と書かれているセルにカーソルを移動する
= を入力する(半角のこと)
Sheet1 の A が入力してあるセルを、左クリック
Enter キーを、押す
Sheet2 の今入力したセルを、下 及び 右 面にコピーする(必要分)
占い師 の表示のある列を、オートフィルタ指定する
オートフィルタ の実行
(オートフィルタについては、エクセル内のヘルプを、参照して下さい。)
    • good
    • 0
この回答へのお礼

ありがとうございました。お気軽人間な私には「オートフィルタ」さえ知りませんでした。この方法もできました!HRI-Sankouさん、本当にありがとうございました。

お礼日時:2010/05/15 23:29

 今仮に、Sheet2のA1セルにB列の中の特定の内容を指定すると、B列のデータがSheet2のA1セルと等しいSheet1の行のデータのみを抽出して、Sheet2の3行目以下に自動的に表示するものとします。


 又、Sheet1のE列を作業列として使用しするものとします。
 まず、Sheet1のE1セルに次の数式を入力して下さい。
=IF($B1="","",$B1&COUNTIF($B$1:$B1,$B1))

 次に、Sheet1のE1セルをコピーして、Sheet1のE2以下のセル(A~D列に最後のデータが存在している行まで)に貼り付けて下さい。
 次に、Sheet2のA3セルに次の数式を入力して下さい。

=IF(ROWS($3:3)>COUNTIF(Sheet1!$B:$B,$A$1),"",INDEX(Sheet1!$A:$D,MATCH($A$1&ROWS($3:3),Sheet1!$E:$E,0),COLUMNS($A:A)))

 そして、Sheet2のA3セルをコピーして、Sheet2のB3~D3に貼り付けてから、Sheet2のA3~D3の範囲をコピーして、必要な行数だけ下方に貼り付けて下さい。
 後は、Sheet2のA1セルにB列の中の特定の内容を指定すると、抽出されたデータが自動的に表示されます。
    • good
    • 2
この回答へのお礼

ありがとうございました。こんな関数使う必要があったんですね。できました!kagakusukiさん、本当にありがとうございました。

お礼日時:2010/05/15 23:26

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

gooドクター

このQ&Aを見た人がよく見るQ&A

このカテゴリの人気Q&Aランキング