• 締切済み

Excelのデータから行を抜き出す方法を教えて下さい

初心者です。とても基本的な質問かもしれませんが、教えて頂ければ幸いです。 宜しくお願い致します。 EXCELにて、sheet1には商品に関するデータの一覧表があり、 sheet2には今回ピックアップが必要な商品の「商品番号」の一覧のみが 記入されています。 sheet1には「商品番号」「商品名」「責任者」などの項目があり、 商品番号には7~10桁の整数が入っています。 そこで、sheet2の商品番号とsheet1の商品番号をつき合わせて、一致するsheet1の行(商品番号、商品名、責任者などのデータ)を抜き出して、別のsheetに貼り付けたいと思っています。 一つ一つ手で抜き出すには困難な量なので、何か良い方法がないか探しています。 関数はVLOOKUPくらいしか使ったことがなく、条件付の行全体を抜き出す方法がわかりません。 以上、どうぞ宜しくお願い致します。

みんなの回答

  • telescope
  • ベストアンサー率54% (1069/1958)
回答No.3

ANo.2です。「商品番号」がA列、「商品名」がB列、「責任者」がC列にあるとして、 B2セルに式を入れ、 =VLOOKUP($A2,Sheet1!$A$2:$C$400,COLUMN(),0) 右方向に項目分フィルします。そのまま下方向にフィルすれば良いと思います。 または、ピボットテーブルを使ったほうが簡単でしょう。 「データ」-「ピボットテーブル~」で、とりあえず「完了」ボタンを押します。 「行のフィールド~」に「商品番号」「商品名」「担当者」など必要な項目をドラッグ&ペーストします。 「データ アイテム~」には、「在庫数」や「販売数」など集計したい項目があればいれます。なければ、担当者でも商品番号でも、とりあえず放り込んでおきます。 「行のフィールド」では、左の項目が上の階層になります。順番はドラッグすれば入れ替えられます。 「商品番号」の右の▼をクリックして、表示したいものだけチェックを入れておきます。 それぞれ計も表示されますが、必要なければ、右クリックで「表示しない」を選びます。 また、「商品番号」を「ページのフィールド~」に移動して、「商品番号」ごとの分析もできます。こちらは、▼をクリックして、「すべて」かある特定の商品番号の表示が出来ます。一見同じようですが、「行のフィールド」にあるときは、1つだけの商品番号について表示したいとき、ほかのチェックをはずすのが面倒です。複数の商品番号について表示したいときは、「行のフィールド」に置いて、1つだけの商品番号について表示したいときは、「ページのフィールド」に移動させたほうが楽でしょう。 「ページのフィールド」に商品番号を移動させて、「すべて」を表示させているとき、右クリックで「ページの表示」を選ぶと、「商品番号」ごとのSheetが一気に出来上がります。(はじめて使ったときは、ちょっと感動) 「在庫数」や「販売数」の数値データを集計したいとき、「データフィールド~」にその項目ボタンをドラッグ&ドロップします。 集計データのセルを右クリックして「フィールドの設定」で「集計方法」を選べます。 「合計」「データの個数」「最大値」「最小値」などの集計が出来ます。 左上の「データの合計:~」「データの個数:~」欄をダブルクリックしても「集計方法」を選択できます。 はじめのうちは、取っ付きにくいかも知れませんが、色んな角度から分析できますので、慣れておかれると良いと思います。 業務で必要なら、あれこれ関数を考えているより、こういう機能を使ったほうが効率的だと思います。

fiocchi
質問者

お礼

いろいろな役立ちテクニックまで教えて頂きましてありがとうございます! 確かに、関数を考えている暇があったら手を動かしたほうが早いかもしれませんね・・。 早速実践してみたいと思います。 ありがとうございました!

  • telescope
  • ベストアンサー率54% (1069/1958)
回答No.2

「商品番号」がA列、「商品名」がB列、「責任者」がC列にあるとして、 Sheet2のB2セルに =VLOOKUP(A2,Sheet1!$A$2:$C$400,2,0) Sheet2のC2セルに =VLOOKUP(A2,Sheet1!$A$2:$C$400,3,0) B2C2を選択して、右下のフィルハンドルを下方向にドラッグします。 既にA列にデータが入力されているなら、フィルハンドルをダブルクリックすれば、 A列の最後の行までコピーされます。

fiocchi
質問者

お礼

ご回答頂きましてありがとうございます。 自分もVLOOKUPを使って、「商品名」「責任者」などの項目を1列ずつ参照していたのですが、列ごとにVLOOKUPを入れていくのが面倒なほど項目が沢山あるため、1行まるごと参照してくれるようなものはないかと思っていたのですが、そんなにうまい話はないですね・・・。 ありがとうございました!

  • ASIMOV
  • ベストアンサー率41% (982/2351)
回答No.1

>sheet1には「商品番号」「商品名」「責任者」などの項目があり この、「商品番号」と「商品名」や「責任者」は、別の行なんですか? 具体的な配置はどうなっているのでしょうか 同じ行なら、VLOOKUPで出来ます

fiocchi
質問者

補足

すみません、説明不足でした。 具体的には、このようになっています。 <sheet1> 1| 商品番号 |   商品名  | 責任者 |・・・・ -+----------+------------+--------+----- 2|   1000000|○×チョコレート|山田大介|・・・・ -+----------+------------+--------+----- 3|   1000001|    ×△ガム|坂井一郎|・・・・ -+----------+------------+--------+----- 4|   1000002|  ××クッキー|谷本啓二|・・・・ <sheet2> 1| 商品番号 |  商品名   |責任者 |・・・・ -+----------+-----------+--------+----- 2| 7638891236|         |      | -+----------+-----------+--------+----- 3|  397612319|         |      | -+----------+-----------+--------+----- 4|   34981215|         |      | 「責任者」以降も列の項目が沢山あるので、1列ずつVLOOKUPを入れるよりも、sheet2の商品番号と同じ、sheet1の商品番号のある行を、sheet1から丸ごと抜き出すことはできないかなぁと考えております。 そういうことは関数ではなく、VBAを使わないといけないのでしょうか?

関連するQ&A