プロが教える店舗&オフィスのセキュリティ対策術

《どなたか、お教え下さい》
  エクセルで、条件にあう複数の行を別のシートに抽出してまとめる。
「sheet1」の下記の基本データを「sheet2」に「得意先」ごと「日付」の早い順にまとめたいのでが。関数を使ってできないものか、どなたかお教え下さい。「マクロ」や「Access」は使用したことがないので、関数を使ってやりたいと思いますが、できるものでしょうか。よろしくお願いします。
sheet1
番号 得意先 日付 商品名 商品詳細 金額 備考
1   A
2   B
2   B
4   D
5   E
6   F
2   B
3   C
5   E

  A    B
 番号  得意先
  1   A   
  2   B   得意先名は、番号を入力することで表示されるように
  3   C   関数「VLOOKUP」を使って表示させるようにしていま
  4   D   す。 
  5   E
  6   F

 

A 回答 (3件)

ピボットテーブルがお勧めです。


メニューから、「データ」⇒「ピボットテーブルとピボットグラフ レポート」を選択して、ウイザードを起動します。
「次へ」⇒「次へ」⇒「レイアウト」⇒表のレイアウトを項目名をドラッグ&ドロップして設定し、OKで自動的に表が完成します。

項目は自由に変更できますので、望みの形になるまで試行錯誤してみてください
    • good
    • 0
この回答へのお礼

ありがとうございました。参考になりました。

お礼日時:2009/12/16 14:22

こんばんは!


すでに回答は出ていますが・・・
他の方法の一例です。

↓の画像で右側がSheet2になります。
Sheet1に作業用の列を使わせてもらっています。

Sheet1のG2セルに
=IF(COUNTIF($A$2:A2,A2)=1,ROW(A1),"")
という数式を入れ、オートフィルで下へコピーします。
(Sheet2の数式が1000行まで対応できるようにしていますので、
そのくらいまでコピーしても構いません)

そして、Sheet2のA2セルに
=IF(COUNT(Sheet1!$G$2:$G$1000)<ROW(A1),"",INDEX(Sheet1!A$2:A$1000,SMALL(Sheet1!$G$2:$G$1000,ROW(A1))))
という数式を入れ、列方向と行方向にオートフィルでコピーします。
日付まで表示させたいのであればもう1列右にコピーします。

これで画像のような感じになりますが、
Sheet2では数式が入っているだけですので並び替えをしても何も変化ありません。

元データの日付の昇順で並び替えする方法が一番手っ取り早いのですが、
元データを変更したくなければ、Sheet2に表示されているものを範囲指定し
コピー → 形式を選択して貼り付け → OK
このコピーしたものなら並び替えが可能です。

以上、長々と書きましたが参考になれば幸いです。
他に良い方法があれば読み流してくださいね。m(__)m
「エクセルで、条件にあう複数の行を別のシー」の回答画像2
    • good
    • 0
この回答へのお礼

 ありがとうございました、参考になりました。

お礼日時:2009/12/16 14:21

毎日のように出る質問です。


Googleででも「imogasi方式」で照会すれば、このタイプの質問で私が答えた質問が多数出ます。また私と違う方式の回答も多数出ます。私の方法は作業列を1列使い、式を判りやすくしています。
ーー
しかし
>条件にあう複数の行を別のシートに抽出してまとめる。
なら条件とはなにか。得意先コードの1つの指定ですか
>得意先」ごと「日付」の早い順にまとめたいのでが
なら得意先コード+日付でソートしたらしまお仕舞いではないか。
質問を模擬実例を挙げて説明するべきだ。目的に付いて文章をはっきり書ける方が大切なスキルだ。
ーーー
想像で
下記の中から得意先コード2を別紙に抜き出したいなら
例 データ
Sheet2のA1に(条件の)2
Sheet1
A列  B列  C列  D列
コード名前計数
1A12
2B131
2B142
4D15
5E16
6F17
2B183
3C19
5E20
D列は =IF(A2=Sheet2!$A$1,MAX($D$1:D1)+1,"")
下方向に式を複写。
Sheet2に行って
=INDEX(Sheet1!$A$1:$D$100,MATCH(ROW()-1,Sheet1!$D$1:$D$100,0),COLUMN())
式を右方向に式複写
A2:C2の式を下方向に式複写。
結果
2
2B13
2B14
2B18
#N/A#N/A#N/A
ーー
#N/Aを空白にするには
ROW()-1がSheet1のD列のMAXを超えていると空白と
いうIF文を加えると良い。

この回答への補足

 お忙しい中、ご面倒おかけしてすみません。誠にありがとうございます。ご指示頂いたようにして、「2」ついてはできました。しかしながら、残りの「1・3・4・5・6」の得意先については、「2」のように別のシートに抽出できるようにしたいのですがどのようにしたら良いでしょうか。質問の「スキル」の面でも初心者なもので、大変ご迷惑をおかけしますが、すみません、お教えくださいませんでしょうか。よろしくお願いします。

補足日時:2009/12/08 18:18
    • good
    • 0
この回答へのお礼

 ありがとうございました。

お礼日時:2009/12/16 14:19

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