• 締切済み

エクセル 検索マクロについて

エクセル マクロの超初心者です。似たようなQ6Aもありますが、応用できません。どなたかよろしくお願いします。  A B   C    D     E    F   G 1 No 店番 店名  顧客番号 顧客名 商品 売上金額 2 1 100 日本橋 1234567 浅草太郎 B  10000 3 2 200 京橋  2345678 横浜花子 H  30000 4 3 200 京橋  3456789 東京次郎 B  10000 5 4 300 後楽園 4567890 川崎洋子 H  30000 と以下、1000件程度店番順に並んでいます。 別シートに店番を入力すると、その別シートにその店番だけのデータが 抽出され、表示できるようなマクロを登録したいのです。 ご教授お願いいたします。

みんなの回答

  • hige_082
  • ベストアンサー率50% (379/747)
回答No.3

こんな感じかな? sheet2のA1に店番を入れてね Sub test() Dim i For i = 2 To Worksheets("sheet1").Cells(Rows.Count, 2).End(xlUp).Row If Worksheets("sheet2").Range("a1").Value = Worksheets("sheet1").Cells(i, 2).Value Then Worksheets("sheet1").Rows(i).Copy Worksheets("sheet2").Cells(Rows.Count, 1).End(xlUp).Offset(1) End If Next i End Sub 参考まで

miyukingo
質問者

お礼

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

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

こんばんは! VBAでないので参考にならなかったら無視してください。 ↓の画像でSheet1に作業用の列を使っています。 (配列数式にすればこの列は不要ですが、データ量が多いとコンピュータに負担をかけますので、敢えて使っています) 作業列H2セルに =IF(OR(Sheet2!$A$1="",B2<>Sheet2!$A$1),"",ROW(A1)) としてオートフィルで下へコピー! Sheet2のA3セルに =IF(COUNT(Sheet1!$H$2:$H$1000)<ROW(A1),"",INDEX(Sheet1!A$2:A$1000,SMALL(Sheet1!$H$2:$H$1000,ROW(A1)))) という数式を入れ、列方向と行方向にオートフィルでコピーすると 画像のような感じになります。 これでSheet2のA1セルに店番を入力すればその店のデータが表示されます。 以上、参考になれば良いのですが 最初に書いたように的外れなら読み流してくださいね。m(__)m

miyukingo
質問者

お礼

ありがとうございます。 目から鱗です。 計算式の入力でもできるのですね この計算式は、私のレベルでは思いつきませんでした。

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

作成例: シート2の A1に =Sheet1!B1 と式を入れる A2に 希望の店番 を記入する事にする サンプルマクロ: sub macro1() worksheets("Sheet1").range("A:G").advancedfilter _ action:=xlfiltercopy, _ criteriarange:=worksheets("Sheet2").range("A1:A2"), _ copytorange:=worksheets("Sheet2").range("A4:G4"), _ unique:=false end sub >別シートに店番を入力すると、その別シートにその店番だけのデータが抽出 丸投げで誰かにマクロを書いて欲しいご質問の時は,極力可能な限り詳しく,どこ番地に何を置きたいといった「あなたが作りたいエクセルの姿」を手抜きせずにご質問で列記するようにしてください。詳しければ詳しいほど,あなたの手戻りも皆さんのご助力を無駄にすることも無くなります。

miyukingo
質問者

お礼

ありがとうございました。 次回、質問させていただく時は、きっちりします。

関連するQ&A