- ベストアンサー
Excelマクロで3つ以上の条件でお客様名を抽出する方法
- Excelマクロを使用して、特定の条件でお客様名を抽出する方法についてご質問いただきました。
- 現在、提供されたマクロコードでは、一つの列に3つ以上の条件を指定することができないことが分かっています。
- 提供されたデータ表にはお客様名が少ないですが、実際にはさまざまなお客様名が存在します。特定した5社以外のお客様情報を抽出するためには、他の方法を検討する必要があります。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
>特定した5社以外のお客様の情報を抽出したい sub macro1() dim a a = application.transpose(range("B2:B" & range("B65536").end(xlup).row).value) a = filter(a, "A", false) a = filter(a, "B", false) a = filter(a, "C", false) a = filter(a, "D", false) a = filter(a, "E", false) range("A:D").autofilter field:=2, criteria1:=a, operator:=xlfiltervalues end sub とかでいいです。
その他の回答 (3)
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! A・B・C・D・E 「に等しい」でオートフィルタをかけるのは簡単ですが、 今回はそれ以外というコトですので・・・ 安直な方法ですが作業列を1列使ってその列だけでオートフィルタをかけてみました。 Sub Sample1() Dim lastRow As Long lastRow = Cells(Rows.Count, "A").End(xlUp).Row If lastRow > 1 Then Range("E:E").Insert Range(Cells(2, "E"), Cells(lastRow, "E")).Formula = _ "=IF(OR(B2=""A"",B2=""B"",B2=""C"",B2=""D"",B2=""E""),"""",1)" Range("A1").CurrentRegion.AutoFilter field:=5, Criteria1:=1 End If End Sub ※ 手を動かしてやることを単純にコードにしただけです。m(_ _)m
お礼
有難うございます! 作業列を作ることが出来るんですね! 勉強になりました。 ご協力有難うございました!
- mshr1962
- ベストアンサー率39% (7417/18945)
条件がアルファベットのみならですが。。。 ActiveSheet.Range("$A$1:$D$15").AutoFilter Field:=2,Criteria1:=Array("F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"), Operator:=xlFilterValues のようにすれば、"A"~"E"を除外できます。
お礼
有難うございます! お客様名は漢字・カタカナ・アルファベット等様々でした。 ご協力ありがとうございました!
- mt2008
- ベストアンサー率52% (885/1701)
お礼
有難うございます! コピペしてお客様名の部分を変えたら すんなり出来ました! ご協力有難うございました!