プロが教えるわが家の防犯対策術!

エクセルで下記のようなデータがあり、最終行は2万くらいです。間に空白行はありません

 A    B   C     D
年月日 営業所 担当者名 営業成績 
0708  東京   ○山   60
0708  大阪   △川   55
0708  東京   ○山   20
0708  名古屋  □元   60
0708  大阪   ×谷   55
0708  大阪   ×谷   10
0708  九州   ▽尾   45

このデータでB列の値が「大阪」と「東京」以外を行削除
するマクロを作ろうとするのですがうまく行きません。
(実際の営業所は1000くらいあって、必要な営業所数は11だけなのですが)

よい方法をご存知でしたら、お教えください。

A 回答 (3件)

>オートフィルターでは2つしか検索条件がつけられない、という事


なのでしょうか?

その通りです。

単純なピックアップだけなので、多数の条件がある場合には、こんな感じに複数回の処理(抽出→コピー)を繰り返すことで処理します。

Sub smple()

Sheets("Sheet1").Activate
Range("A1:D20000").AutoFilter
Selection.AutoFilter Field:=2, Criteria1:="=東京", Operator:=xlOr, _
Criteria2:="=大阪"
Range("A1:D20000").Copy Sheets("Sheet2").Range("A1")

Selection.AutoFilter Field:=2, Criteria1:="=名古屋", Operator:=xlOr, _
Criteria2:="=金沢"
Range("A3:D20000").Copy Sheets("Sheet2").Range("A65536").End(xlUp).Offset(1)

Selection.AutoFilter Field:=2, Criteria1:="=新潟", Operator:=xlOr, _
Criteria2:="=仙台"
Range("A3:D20000").Copy Sheets("Sheet2").Range("A65536").End(xlUp).Offset(1)

Selection.AutoFilter

End Sub
    • good
    • 0
この回答へのお礼

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

色々、教えていただいたおかげで、なんとかなりました。
また何かありましたら、よろしくお願いいたします。

お礼日時:2007/08/30 15:06

>マクロで簡易化できないかと、思ったのです。



記録マクロをちょっとだけ修正したものです。
セルの範囲等、細部を修正してください。

Sheets("Sheet1").Activate
Range("A1:D1").Select
Selection.AutoFilter
Selection.AutoFilter Field:=2, Criteria1:="=東京", Operator:=xlOr, _
Criteria2:="=大阪"
Range("A1:D12").Copy Sheets("Sheet2").Range("A1")
Selection.AutoFilter
    • good
    • 0
この回答へのお礼

ありがとうございます。
もうひとつ、教えていただきたいのですが・・・・

サンプルでは抽出する支社は2つなんですが、実際には11支社あって

Selection.AutoFilter Field:=5, Criteria1:="=東京", Operator:=xlOr, _
Criteria2:="=大阪", Operator:=xlOr, _
Criteria3:="=名古屋"

と書き換えるとエラーになってしまします。

オートフィルターでは2つしか検索条件がつけられない、という事
なのでしょうか?

お礼日時:2007/08/30 09:21

>このデータでB列の値が「大阪」と「東京」以外を行削除


するマクロを作ろうとするのですがうまく行きません。

何が上手く行かないのかわかりませんが、行や列、セルを削除するマクロは実行に時間が掛りますし、処理手順を誤ると期待通りに動いてくれません。

条件が2つなら、フィルタを掛けて別シートに転記(コピー)した方が手軽で高速かと思います。
    • good
    • 0
この回答へのお礼

すみません。
説明が不足しておりまして。
一日にデータ更新のタイミング(2時間毎)に同じ作業があって、
11回(必要な営業所数)フィルタとコピーを繰り返すのが手間だったので
マクロで簡易化できないかと、思ったのです。

もう少し考えてみます。
回答、ありがとうございました。

お礼日時:2007/08/29 14:49

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