Computer >> कंप्यूटर >  >> सॉफ्टवेयर >> Office

VBA टू ऑटोफिल्टर एक्सेल में एक ही फील्ड पर एक से अधिक मापदंड के साथ (4 तरीके)

एक्सेल का स्वतः फ़िल्टर कुछ शर्तों के आधार पर डेटा निकालने के लिए सुविधा वास्तव में कुशल है। VBA लागू किया जा रहा है एक्सेल में किसी भी ऑपरेशन को चलाने के लिए सबसे प्रभावी, तेज और सबसे सुरक्षित तरीका है। इस लेख में, हम आपको एक ही फ़ील्ड (स्तंभ) पर एकाधिक मानदंडों के साथ स्वतः फ़िल्टर करने के लिए के 4 तरीके दिखाएंगे। एक्सेल में VBA मैक्रो . के साथ ।

कार्यपुस्तिका डाउनलोड करें

आप यहां से निःशुल्क अभ्यास एक्सेल वर्कबुक डाउनलोड कर सकते हैं।

एक्सेल में एक ही फ़ील्ड (कॉलम) पर एक से अधिक मानदंड वाले ऑटोफ़िल्टर के लिए VBA के साथ 4 तरीके

इस अनुभाग के बाद, आप सीखेंगे कि कैसे एकाधिक टेक्स्ट और संख्यात्मक मानों के साथ, AND ऑपरेटर और OR ऑपरेटर के साथ स्वतः फ़िल्टर करें उसी कॉलम पर एक्सेल में VBA . के साथ 4 अलग-अलग मानदंडों में।

1. एक ही कॉलम पर एकाधिक संख्यात्मक मानदंड वाले ऑटोफ़िल्टर में VBA एम्बेड करें

निम्नलिखित डेटासेट पर विचार करें। कॉलम बी कुछ रैंडम नंबर . से मिलकर बनता है , जबकि कॉलम D केवल विषम संख्याएं धारण करता है . हम यहां क्या करने जा रहे हैं, हम कॉलम डी में निहित मानदंडों के आधार पर कॉलम बी को फ़िल्टर करेंगे; इसका मतलब है, रैंडम नंबर (कॉलम बी ) विषम संख्याओं द्वारा फ़िल्टर किया जाएगा कॉलम D में रहने वाले नंबरों सहित और उनके बीच . के मानदंड के साथ ।

VBA टू ऑटोफिल्टर एक्सेल में एक ही फील्ड पर एक से अधिक मापदंड के साथ (4 तरीके)

आइए देखें कि VBA . के साथ ऐसा कैसे करें एक्सेल में।

चरण:

  • शुरुआत में, Alt + F11 दबाएं अपने कीबोर्ड पर या टैब पर जाएं डेवलपर -> विजुअल बेसिक विजुअल बेसिक संपादक खोलने के लिए ।

VBA टू ऑटोफिल्टर एक्सेल में एक ही फील्ड पर एक से अधिक मापदंड के साथ (4 तरीके)

  • अगला, पॉप-अप कोड विंडो में, मेनू बार से, सम्मिलित करें -> मॉड्यूल क्लिक करें ।

VBA टू ऑटोफिल्टर एक्सेल में एक ही फील्ड पर एक से अधिक मापदंड के साथ (4 तरीके)

  • फिर, प्रतिलिपि करें निम्नलिखित कोड और चिपकाएं इसे कोड विंडो में।
Sub AutoFilterWithMultipleCriteriaOnSameColumn()
Dim iArray As Variant
With ThisWorkbook.Worksheets("Column")
    iArray = Split(Join(Application.Transpose(.Range(.Cells(5, 4), .Cells(.Range("D:D").Find(What:="*", LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row, 4)).Value)))
    .Range("B4").AutoFilter Field:=1, Criteria1:=iArray, Operator:=xlFilterValues
End With
End Sub

आपका कोड अब चलने के लिए तैयार है।

VBA टू ऑटोफिल्टर एक्सेल में एक ही फील्ड पर एक से अधिक मापदंड के साथ (4 तरीके)

  • अब, F5 दबाएं अपने कीबोर्ड पर या मेनू बार से चलाएं -> उप/उपयोगकर्ता प्रपत्र चलाएं . चुनें . आप बस छोटा रन आइकन . पर भी क्लिक कर सकते हैं उप-मेनू बार में मैक्रो चलाने के लिए।

VBA टू ऑटोफिल्टर एक्सेल में एक ही फील्ड पर एक से अधिक मापदंड के साथ (4 तरीके)

सफल कोड निष्पादन के बाद, परिणाम देखने के लिए निम्न छवि देखें।

VBA टू ऑटोफिल्टर एक्सेल में एक ही फील्ड पर एक से अधिक मापदंड के साथ (4 तरीके)

जैसा कि आप ऊपर की छवि से देख सकते हैं, स्तंभ B अब फ़िल्टर है केवल विषम संख्याओं . के साथ ।

आप सम संख्याओं . के आधार पर डेटा फ़िल्टर करने के लिए समान कोड निष्पादित कर सकते हैं . उस स्थिति में, आपको विषम संख्याओं के बजाय सम संख्याओं को दूसरे कॉलम में संग्रहीत करना होगा।

VBA कोड स्पष्टीकरण

Dim iArray As Variant

चर . को परिभाषित करें सरणी . के लिए ।

With ThisWorkbook.Worksheets("Column")

कार्यपत्रक का नाम घोषित करें ("कॉलम ” हमारे डेटासेट के लिए शीट का नाम है)। आपको अपने डेटासेट के अनुसार शीट का नाम लिखना होगा।

iArray = Split(Join(Application.Transpose(.Range(.Cells(5, 4), .Cells(.Range("D:D").Find(What:="*", LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row, 4)).Value)))

परिभाषित सरणी भरें संग्रहीत मानदंड . के साथ कॉलम डी सेल D5 . से प्रारंभ हो रहा है ।

.Range("B4").AutoFilter Field:=1, Criteria1:=iArray, Operator:=xlFilterValues
End With
  • फ़िल्टर कॉलम बी सेल B4 . से प्रारंभ होता है संग्रहीत अनेक मानदंड . के अनुसार परिभाषित सरणी . में ।
  • उसके बाद, छोड़ देता है कार्यपत्रक

और पढ़ें: एक्सेल वीबीए यह जांचने के लिए कि ऑटोफिल्टर चालू है या नहीं (4 आसान तरीके)

2. एक्सेल में एक ही कॉलम पर ऑटोफिल्टर और ऑपरेटर के साथ वीबीए लागू करें

xlAND एक्सेल में ऑपरेटर दो मानदंडों के साथ काम करता है। यह वे मान लौटाता है जो दोनों मानदंडों को पूरा करते हैं

अब, निम्नलिखित डेटासेट पर विचार करें। कॉलम बी रैंडम नंबर, . से मिलकर बनता है और हमने दो शर्तों को D4:E5 की श्रेणी में डाला . शर्तें हैं कॉलम B फ़िल्टर . करना होगा उन संख्याओं के साथ जो 2 से अधिक या उसके बराबर . हैं (मान सेल E4 में संग्रहीत है ) और 9 से कम या उसके बराबर (मान सेल E5 में संग्रहीत है ) हम कॉलम B filter को फ़िल्टर करेंगे उन शर्तों के अनुसार AND ऑपरेटर . के साथ एक्सेल में VBA

VBA टू ऑटोफिल्टर एक्सेल में एक ही फील्ड पर एक से अधिक मापदंड के साथ (4 तरीके)

इसे प्राप्त करने के चरण नीचे दिए गए हैं।

चरण:

  • पहले की तरह ही, Visual Basic Editor खोलें डेवलपर . की ओर से टैब और सम्मिलित करें एक मॉड्यूल कोड विंडो में।
  • फिर, प्रतिलिपि करें निम्नलिखित कोड और चिपकाएं इसे कोड विंडो में।
Sub AutoFilterOnSameColumnWithAND()
With ThisWorkbook.Worksheets("AND")
    .Range("B4").AutoFilter Field:=1, Criteria1:=">=" & .Range("E4").Value, Operator:=xlAnd, Criteria2:="<=" & .Range("E5").Value
End With
End Sub

आपका कोड अब चलने के लिए तैयार है।

VBA टू ऑटोफिल्टर एक्सेल में एक ही फील्ड पर एक से अधिक मापदंड के साथ (4 तरीके)

  • उसके बाद, भागो मैक्रो जैसा कि हमने आपको उपरोक्त अनुभाग में दिखाया था। परिणाम नीचे दी गई छवि में दिखाया गया है।

VBA टू ऑटोफिल्टर एक्सेल में एक ही फील्ड पर एक से अधिक मापदंड के साथ (4 तरीके)

कोड के सफल निष्पादन के बाद, कॉलम B 2 से 9 तक के मानों के साथ फ़िल्टर किया जाता है , जो दोनों शर्तों को पूरा करते हैं।

VBA कोड स्पष्टीकरण

With ThisWorkbook.Worksheets("AND")
 .Range("B4").AutoFilter Field:=1, Criteria1:=">=" & .Range("E4").Value, Operator:=xlAnd, Criteria2:="<=" & .Range("E5").Value
End With

कोड का यह टुकड़ा,

  • सबसे पहले कार्यपत्रक का नाम घोषित करता है जिसके साथ हम काम करेंगे ("AND ” हमारे डेटासेट के लिए शीट का नाम है)। आपको अपने डेटासेट के अनुसार शीट का नाम लिखना होगा।
  • उसके बाद, कॉलम B फ़िल्टर करें सेल B4 . से प्रारंभ होता है संग्रहीत अनेक मानदंड . के अनुसार सेल E4 . में और E5 xlAnd . के साथ ऑपरेटर।
  • फिर, छोड़ देता है कार्यपत्रक

और पढ़ें: [फिक्स]:श्रेणी श्रेणी की स्वत:फ़िल्टर विधि विफल (5 समाधान)

3. Excel में समान कॉलम पर OR ऑपरेटर के साथ ऑटोफ़िल्टर पर मैक्रो लागू करें

xlOR एक्सेल में ऑपरेटर दो मानदंडों के साथ काम करता है। xlAND के विपरीत , यह वे मान लौटाता है जो किसी भी मानदंड को पूरा करते हैं

अब, निम्नलिखित डेटासेट पर विचार करें। कॉलम बी रैंडम नंबर, . से मिलकर बनता है और हमने दो शर्तों को D4:E5 की श्रेणी में डाला . शर्तें हैं कॉलम B उन संख्याओं के साथ फ़िल्टर किया जाना है जो 12 से बड़ा या उसके बराबर . हैं (मान सेल E4 में संग्रहीत है ) या 7 से कम या उसके बराबर (मान सेल E5 में संग्रहीत है ) हम कॉलम B filter को फ़िल्टर करेंगे उन शर्तों के अनुसार या ऑपरेटर . के साथ एक्सेल में VBA

VBA टू ऑटोफिल्टर एक्सेल में एक ही फील्ड पर एक से अधिक मापदंड के साथ (4 तरीके)

आइए देखें कि इसे कैसे करना है।

चरण:

  • जैसा कि पहले दिखाया गया है, विजुअल बेसिक एडिटर खोलें डेवलपर . की ओर से टैब और सम्मिलित करें एक मॉड्यूल कोड विंडो में।
  • फिर, प्रतिलिपि करें निम्नलिखित कोड और चिपकाएं इसे कोड विंडो में।
Sub AutoFilterOnSameColumnWithOR()
With ThisWorkbook.Worksheets("OR")
    .Range("B4").AutoFilter Field:=1, Criteria1:="<" & .Range("E5").Value, Operator:=xlOr, Criteria2:=">" & .Range("E4").Value
End With
End Sub

आपका कोड अब चलने के लिए तैयार है।

VBA टू ऑटोफिल्टर एक्सेल में एक ही फील्ड पर एक से अधिक मापदंड के साथ (4 तरीके)

  • बाद में, चलाएं मैक्रो और आउटपुट देखने के लिए निम्न छवि को देखें।

VBA टू ऑटोफिल्टर एक्सेल में एक ही फील्ड पर एक से अधिक मापदंड के साथ (4 तरीके)

कोड के सफल निष्पादन के बाद, कॉलम B उन मानों के साथ फ़िल्टर किया जाता है जो 12 से अधिक या उसके बराबर या 7 से कम या उसके बराबर हैं ।

VBA कोड स्पष्टीकरण

With ThisWorkbook.Worksheets("OR")
 .Range("B4").AutoFilter Field:=1, Criteria1:="<" & .Range("E5").Value, Operator:=xlOr, Criteria2:=">" & .Range("E4").Value
End With

कोड का यह टुकड़ा,

  • सबसे पहले कार्यपत्रक का नाम घोषित करता है जिसके साथ हम काम करेंगे ("या ” हमारे डेटासेट के लिए शीट का नाम है)। आपको अपने डेटासेट के अनुसार शीट का नाम लिखना होगा।
  • उसके बाद, कॉलम B फ़िल्टर करें सेल B4 . से प्रारंभ होता है संग्रहीत अनेक मानदंड . के अनुसार सेल E4 . में और E5 xlOr . के साथ ऑपरेटर।
  • फिर, छोड़ देता है कार्यपत्रक

और पढ़ें: एक्सेल वीबीए के साथ दृश्यमान पंक्तियों को ऑटोफ़िल्टर और कॉपी कैसे करें

4. एक ही फ़ील्ड पर एकाधिक टेक्स्ट मानों के आधार पर VBA को AutoFilter में एम्बेड करें

निम्नलिखित डेटासेट को देखें। कॉलम बी देश के नाम . से मिलकर बनता है . हम इस कॉलम को उस देश के आधार पर फ़िल्टर करेंगे जिसे हम मैक्रो में हार्डकोड करेंगे। हम कॉलम को स्वतः फ़िल्टर करेंगे दो देशों के नामों पर आधारित, ऑस्ट्रेलिया और इंग्लैंड

VBA टू ऑटोफिल्टर एक्सेल में एक ही फील्ड पर एक से अधिक मापदंड के साथ (4 तरीके)

निष्पादित करने के चरण जो नीचे दिए गए हैं।

चरण:

  • सबसे पहले, विजुअल बेसिक एडिटर खोलें डेवलपर . की ओर से टैब और सम्मिलित करें एक मॉड्यूल कोड विंडो में।
  • फिर, प्रतिलिपि करें निम्नलिखित कोड और चिपकाएं इसे कोड विंडो में।
Sub AutoFilterOnSameColumnWithMultipleTexts()
Dim iArray As Variant
iArray = Array("Australia", "England")
Range("B4", Range("B" & Rows.Count).End(xlUp)).AutoFilter 1, iArray, xlFilterValues, , 0
End Sub

आपका कोड अब चलने के लिए तैयार है।

VBA टू ऑटोफिल्टर एक्सेल में एक ही फील्ड पर एक से अधिक मापदंड के साथ (4 तरीके)

  • अगला, चलाएं मैक्रो। अब, परिणाम देखने के लिए निम्न चित्र को देखें।

VBA टू ऑटोफिल्टर एक्सेल में एक ही फील्ड पर एक से अधिक मापदंड के साथ (4 तरीके)

परिणामस्वरूप, स्तंभ B जो इतने सारे देशों से भरा हुआ था अब फ़िल्टर . है केवल दो देशों के नाम के साथ - ऑस्ट्रेलिया और इंग्लैंड - जो हमने कोड में दिया है।

VBA कोड स्पष्टीकरण

Dim iArray As Variant

चर . को परिभाषित करें सरणी . के लिए ।

iArray = Array("Australia", "England")

स्टोर पाठ्य मानदंड जिसके आधार पर फ़िल्टरिंग परिभाषित सरणी . में निष्पादित किया जाएगा ।

Range("B4", Range("B" & Rows.Count).End(xlUp)).AutoFilter 1, iArray, xlFilterValues, , 0

फ़िल्टर कॉलम बी सेल B4 . से प्रारंभ होता है एकाधिक टेक्स्ट मानदंड हार्डकोडेड . के अनुसार परिभाषित सरणी . में ।

और पढ़ें: एक्सेल में वीबीए के साथ मूल्यों को ऑटोफिल्टर कैसे करें जो एक निश्चित मूल्य के बराबर नहीं है

निष्कर्ष

निष्कर्ष निकालने के लिए, इस लेख ने आपको एक ही फ़ील्ड (स्तंभ) पर एकाधिक मानदंडों के साथ स्वत:फ़िल्टर करने के लिए के 4 तरीके दिखाए। एक्सेल में VBA मैक्रो . के साथ . मुझे उम्मीद है कि यह लेख आपके लिए बहुत फायदेमंद रहा होगा। विषय के संबंध में कोई भी प्रश्न पूछने के लिए स्वतंत्र महसूस करें।

संबंधित लेख

  • VBA ऑटोफिल्टर:सबसे छोटे से सबसे बड़े तक छाँटें (3 तरीके)
  • Excel VBA:मौजूद होने पर ऑटोफ़िल्टर निकालें (7 उदाहरण)

  1. Excel में एकाधिक सीमांकक वाली टेक्स्ट फ़ाइल कैसे आयात करें (3 तरीके)

    यह आलेख बताता है कि कैसे पाठ फ़ाइल डेटा आयात करें एकाधिक सीमांकक . के साथ एक एक्सेल वर्कशीट . में 3 अलग-अलग तरीकों का उपयोग करना। हम कार्य को पूरा करने के लिए एक्सेल की अंतर्निहित सुविधाओं और वीबीए कोड का उपयोग करेंगे। आइए विधियों की स्पष्ट समझ प्राप्त करने के लिए उदाहरणों में गोता लगाएँ। 3 एक्सेल

  1. Excel में अनेक रंगों द्वारा कैसे फ़िल्टर करें (2 आसान तरीके)

    इस लेख में, मैं चर्चा करूंगा कि कैसे आप Microsoft Excel . में एकाधिक रंगों द्वारा फ़िल्टर कर सकते हैं . आमतौर पर, जब हम एक निश्चित कॉलम को कई रंगों से फ़िल्टर करते हैं, तो डेटासेट में मौजूद अन्य कॉलम भी पहले लागू किए गए फ़िल्टर के अनुसार फ़िल्टर किए जाते हैं। डेटा को कई रंगों से फ़िल्टर करना थोड़ा म

  1. एक्सेल में डेलीमीटर के साथ कॉलम को टेक्स्ट में कैसे बदलें

    हमें अक्सर Excel . के कॉलम में एक सूची की आवश्यकता होती है एक क्षैतिज अभिविन्यास में व्यवस्थित करने के लिए शीट। हमें उस क्षैतिज व्यवस्था में टेक्स्ट को अलग करने के लिए एक सीमांकक की आवश्यकता होगी। हम अक्सर अल्पविराम का उपयोग सीमांकक के रूप में करते हैं। एक्सेल एक सीमांकक द्वारा अलग किए गए पाठ में