• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excelマクロ:オートフィルタ3つ以上の条件)

Excelマクロで3つ以上の条件でお客様名を抽出する方法

このQ&Aのポイント
  • Excelマクロを使用して、特定の条件でお客様名を抽出する方法についてご質問いただきました。
  • 現在、提供されたマクロコードでは、一つの列に3つ以上の条件を指定することができないことが分かっています。
  • 提供されたデータ表にはお客様名が少ないですが、実際にはさまざまなお客様名が存在します。特定した5社以外のお客様情報を抽出するためには、他の方法を検討する必要があります。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.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 とかでいいです。

momo-a
質問者

お礼

有難うございます! コピペしてお客様名の部分を変えたら すんなり出来ました! ご協力有難うございました!

その他の回答 (3)

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

こんばんは! 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

momo-a
質問者

お礼

有難うございます! 作業列を作ることが出来るんですね! 勉強になりました。 ご協力有難うございました!

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.2

条件がアルファベットのみならですが。。。 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"を除外できます。

momo-a
質問者

お礼

有難うございます! お客様名は漢字・カタカナ・アルファベット等様々でした。 ご協力ありがとうございました!

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.1

オートフィルターでは無いですが…… Range("A1:D15").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= Range("F1:J2"), Unique:=False

momo-a
質問者

お礼

ご協力ありがとうございます! どうしてもオートフィルターでなければいけなかったので 次回の参考にさせて頂きます☆ 有難うございました!

関連するQ&A