• ベストアンサー

エクセルで、条件にあう複数の行を別のシートに抽出する

《どなたか、お教え下さい》   エクセルで、条件にあう複数の行を別のシートに抽出してまとめる。 「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  

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

毎日のように出る質問です。 Googleででも「imogasi方式」で照会すれば、このタイプの質問で私が答えた質問が多数出ます。また私と違う方式の回答も多数出ます。私の方法は作業列を1列使い、式を判りやすくしています。 ーー しかし >条件にあう複数の行を別のシートに抽出してまとめる。 なら条件とはなにか。得意先コードの1つの指定ですか >得意先」ごと「日付」の早い順にまとめたいのでが なら得意先コード+日付でソートしたらしまお仕舞いではないか。 質問を模擬実例を挙げて説明するべきだ。目的に付いて文章をはっきり書ける方が大切なスキルだ。 ーーー 想像で 下記の中から得意先コード2を別紙に抜き出したいなら 例 データ Sheet2のA1に(条件の)2 Sheet1 A列  B列  C列  D列 コード 名前 計数 1 A 12 2 B 13 1 2 B 14 2 4 D 15 5 E 16 6 F 17 2 B 18 3 3 C 19 5 E 20 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 2 B 13 2 B 14 2 B 18 #N/A #N/A #N/A ーー #N/Aを空白にするには ROW()-1がSheet1のD列のMAXを超えていると空白と いうIF文を加えると良い。

ihuyi
質問者

お礼

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

ihuyi
質問者

補足

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

その他の回答 (2)

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

こんばんは! すでに回答は出ていますが・・・ 他の方法の一例です。 ↓の画像で右側が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

ihuyi
質問者

お礼

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

  • hitoshi38
  • ベストアンサー率50% (5/10)
回答No.1

ピボットテーブルがお勧めです。 メニューから、「データ」⇒「ピボットテーブルとピボットグラフ レポート」を選択して、ウイザードを起動します。 「次へ」⇒「次へ」⇒「レイアウト」⇒表のレイアウトを項目名をドラッグ&ドロップして設定し、OKで自動的に表が完成します。 項目は自由に変更できますので、望みの形になるまで試行錯誤してみてください

ihuyi
質問者

お礼

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

関連するQ&A