エクセルで特定の項目の行を別のシートに表示する方法は?

このQ&Aのポイント
  • エクセルで特定の項目の行を別のシートに表示する方法を教えてください。
  • Sheet1にあるデータのうち、特定の項目の行だけをSheet2に表示したいです。
  • 列をソートしてコピーする方法はありますが、今後もデータが増えていくので自動化したいです。
回答を見る
  • ベストアンサー

エクセルで特定の項目の行を別のシートに表示したいのですがどうすればいい

エクセルで特定の項目の行を別のシートに表示したいのですがどうすればいいでしょうか。 うまく説明できないのですが 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に選択された項目の行がそのまま入るように できないかと悩んでいます。 都合よすぎでしょうか?

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

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

Sheet2のA1セルに抽出したい項目が入力されているなら、表示させたいセルに以下の式を入力し、右方向に4つ、および下方向に適当数オートフィルしてください。 =INDEX(Sheet1!A:A,SMALL(INDEX((Sheet1!$B$2:$B$1000<>$A$1)*1000+ROW($B$2:$B$1000),),ROW(A1)))&""

aroma_de_uu
質問者

お礼

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

その他の回答 (3)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.4

こんにちは! すでに回答は出ていますので、参考程度で・・・ ↓の画像のように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

aroma_de_uu
質問者

お礼

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

回答No.2

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

aroma_de_uu
質問者

お礼

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

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

 今仮に、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列の中の特定の内容を指定すると、抽出されたデータが自動的に表示されます。

aroma_de_uu
質問者

お礼

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

関連するQ&A

  • エクセルで別のシートに特定の項目を表示したいのですがどうすればいいでし

    エクセルで別のシートに特定の項目を表示したいのですがどうすればいいでしょうか。 お恥ずかしながらhttp://okwave.jp/qa/q5895928.htmlにて、似たような質問をいたしましたが、電光石火の如くご回答を頂きました。おかげさまでその時は寝不足でお肌をいじめることなく済んだのですが、新たな難問となりました。以前教えて頂いた式をこちゃこちゃしたり、切り貼りしたりましたが上手くいきません。 説明が上手くできないので画像にしてみました。(これぐらいなら何とか。。。) まず、Sheet1の横(a~k)にデータがあり、それが縦に約2,100件あります。 Sheet1のデータを参照して、 (1)Sheet2にSheet1の区分「02占い師」のデータのうち特定の項目(お名前、所在地、電話番号、サービス内容)を表示し、 (2)Sheet3にSheet1の区分「都道府県」のデータのうち特定の項目(お名前、所在地、電話番号、サービス内容)を表示させることはできるでしょうか? ただし、(1)、(2)とも列幅をゼロにしてセルを見えなくする方法を使わない方法はあるのでしょうか。 ぐぐってみましたが。。。aroma_de_uu的には不可能でした。

  • エクセルの表を別のシートに縦に数行おきに書き移したい

    エクセルのSheet1  A商品名 B種別 C金額 D 説明 ・・・・ とまとめてあるデータを、別のシートの表に縦に数行おきに転記したいのです。たとえば sheet2の D3は空欄 D4にsheet1のA2 D5にsheet1のB2 D6にsheet1のC2 D7にsheet1のD2 D8にsheet1のE2 D9は空欄 そして、7行おきに違う商品のデータになり、繰り返します。 (A3~D9までを太いカラー罫線で囲んだフォーマットが商品個数分、空欄で既にsheet2に書き込まれています) 関数で効率よく、データを書き写すことが出来ますでしょうか? よろしくお願いいたします。

  • エクセルでワンタッチで別のシートの行のある部分を表示したい。

    例えば、Sheet1の1-Aに「あ」、1-Bに「い」、1-Cに「う」、2-Aに「え」、2-Bに「お」、2-Cに「か」という文字を記入しています。Sheet2の3-Dに「あ」、5-Fに「い」、6-Fに「う」と反映さす方法はわかるのですが、次にワンタッチでSheet2の3-Dに「え」、5-Fに「お」、6-Fに「か」に変える方法がわかりません。どこかにSheet1の行の1や2を入力するとそこの行の情報をSheet2の決まった場所に反映させたいのですが…よろしくお願いします。

  • エクセルの空白を詰めて別シートに表示

    sheet1のデータを参照して、空白を詰めてsheet2へ表示させたいんです! sheet1(元データになるもの)  A列 |B列|C列・・・ 1行目A|100|100 2行目B|  |200 3行目C|100| 4行目D|  |200 5行目E|100| 6行目F|  |100 ・ ・ sheet2(sheet1でB列に入力があるものを抽出)  A列 |B列 1行目A|100 2行目C|100 3行目E|100 sheet3(sheet1でC列に入力があるものを抽出)  A列 |B列 1行目A|100 2行目B|200 3行目D|200 4行目F|100 sheet2のA1に下記の式を入力してA列とB列に数式をコピー =IF(COUNT(Sheet1!$B$1:$B$6)<ROW(A1),"",INDEX(Sheet1!A$1:A$6,SMALL(IF(Sheet1!$B$1:$B$6<>"",ROW($A$1:$A$6)),ROW(A1)))) すると下記のように表示されます。 A1=A     B1=100 A2=#NUM! B2=#NUM! A3=#NUM! B3=#NUM! 4行目から空白 sheet2のA2のところにエラーが出ていますが、「関数の引数」のところで「数式の結果」には「100」と 正解が表示されています。(B2、A3、B3も同様に)数式の結果のところには正解が表示されています。 答えの「#NUM!」のところに正解を表示させるには、どうしたらいいですか? 見よう見まねでつくったのもで。。。関数にあまり詳しくありません。 よろしくお願い致します。

  • リストを別シートに表示させたい

    excel2013を使用しています 表現が難しいので、添付図を介してご説明いたします。 シート2に添付図のようなデータがあります、全部で1000行位のデータがあります、シート1:C2(入力規則を使用しています)種類を選択時シート1、B6を起点に、該当した種類のデータのみシート1図のように表示させたいです教えてください。 (例)、シート1C2=机, C6:D19には、シート2B2:C15のデータを表示     シート1C2=テーブル、C6:D12には、シート2B16:C21のデータを表示

  • エクセルのシート1のある行をシート2に入力

    お世話になります。 エクセル2010を使っています。 たとえばシート1に、以下のような行があったとしましょう。     A       B       C    D 1(  1  )(2011/11/11)(にんじん)(100) ()はセルを表し、()内がセル内のデータです。 この行を、シート2に自動入力する方法を教えてください。 よろしくお願いします。

  • EXCEL で 数値別に その行を 別sheetの表に 貼り付けたい。

    一回のマクロで 移動できないでしょうか _____________     A   B     C       D 1  日付  コード  仕入れ金額   数量 2  10/2  0098    20       9 3  10/2  0008    21       9 4  10/3  0128    23       10 5  10/4  0098    24       9 6  10/9  0128    23       12 コード0098のデータ行を sheet2 へ コード0128のデータ行を sheet3 へ コード0008のデータ行を sheet4 へ コピーか 移動できないでしょうか? よろしくお願いいたします。

  • エクセル VBA 特定文字がある行を別シートに移動

    C列にA,B,C,D,E(赤枠部分)の文字列が入力された表があります。 マクロ実行時下記のようにするには、VBAのコードをどのように記入すれば、よろしいでしょうか? AとBが入力されている行をシート2にコピー Cが入力されている行を切り取りしシート2に貼り付け(下の行は上方向にシフト) Dが入力されている行を切り取りしシート3に貼り付け(下の行は上方向にシフト) Eが入力されている行を切り取りしシート3に貼り付け(下の行は上方向にシフト) エクセルは2000及び2007です。 よろしくお願い致します。

  • エクセルでシート1の連続している行をシート2に表示

    こんにちは。エクセルでの作業方法の質問です。 早速ですが、シート1のA列が縦に1日~月末まで月日表示されています。その1日分は2行を結合して1日分となっています。 また1日分の横(B列~Z列)に数字のデータが並んでいます。 その中で1日分の行だけを隣のシート2に表示したいのです。 さらにその表示する1日分のデータ(B列~Z列)は、いわゆる現在の 日付『=TODAY()』のようにエクセルを開いた時に当日のデータをシート1から持ってきて表示(参照?)したいのです。 例えば:シート1に下記のデータがあります。 A   B   C    D    E 7/1  6    3    9    11 7/2  10   2 8 15 7/3 2 1 8 12 今日が7/2だとしたら上記シート1から 7/2 10 2 8 15の行だけをシート2の任意の 行に表示させたいわけです。 翌日になったら、7/3の行をシート2の同じ位置に 表示させたいのです。 前日(この場合7/2のデータは上書きされて7/3のデータ が表示されればよいです。) 以上ですが、質問の表現方法がうまくなくてすみません。 どうか、よろしくお願いします。

  • エクセルで別のシートのデータを5行おきに参照して集計したい

    エクセルで別のシートのデータを5行おきに参照して集計したい 別のシート(sheet1)のデータを5行おき(C5・C10・C15~)を参照して、別のシート(sheet2)の表(D1・E1・F1~)に順番に書き込たいのです。どなたか教えてください。宣しくお願い致します。 投稿日時 - 2006-02-21 13:11:45 通報する エクセルで別のシートのデータを5行おきに参照して集計したい 別のシート(sheet1)のデータを5行おき

専門家に質問してみよう