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

एकल एक्सेल कॉलम पर बहु-मानदंड ऑटोफिल्टर लागू करने के 4 सिद्ध VBA तरीके

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

वर्कबुक डाउनलोड करें

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

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

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

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

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

एकल एक्सेल कॉलम पर बहु-मानदंड ऑटोफिल्टर लागू करने के 4 सिद्ध VBA तरीके

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

चरण:

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

एकल एक्सेल कॉलम पर बहु-मानदंड ऑटोफिल्टर लागू करने के 4 सिद्ध VBA तरीके

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

एकल एक्सेल कॉलम पर बहु-मानदंड ऑटोफिल्टर लागू करने के 4 सिद्ध VBA तरीके

  • फिर, निम्न कोड कॉपी करें और कोड विंडो में पेस्ट करें।
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

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

एकल एक्सेल कॉलम पर बहु-मानदंड ऑटोफिल्टर लागू करने के 4 सिद्ध VBA तरीके

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

एकल एक्सेल कॉलम पर बहु-मानदंड ऑटोफिल्टर लागू करने के 4 सिद्ध VBA तरीके

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

एकल एक्सेल कॉलम पर बहु-मानदंड ऑटोफिल्टर लागू करने के 4 सिद्ध VBA तरीके

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

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

VBA कोड व्याख्या

Dim iArray As Variant

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

With ThisWorkbook.Worksheets("Column")

हमारे डेटासेट के लिए वर्कशीट नाम घोषित करें ("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)))

परिभाषित सरणी को कॉलम D में संग्रहीत मानदंड से भरें जो सेल D5 से शुरू होता है।

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

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

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

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

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

एकल एक्सेल कॉलम पर बहु-मानदंड ऑटोफिल्टर लागू करने के 4 सिद्ध VBA तरीके

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

चरण:

  • पहले की तरह ही, डेवलपर टैब से विजुअल बेसिक एडिटर खोलें और कोड विंडो में एक मॉड्यूल सम्मिलित करें।
  • फिर, निम्न कोड कॉपी करें और कोड विंडो में पेस्ट करें।
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

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

एकल एक्सेल कॉलम पर बहु-मानदंड ऑटोफिल्टर लागू करने के 4 सिद्ध VBA तरीके

  • उसके बाद, मैक्रो चलाएं जैसा कि हमने ऊपर के खंड में दिखाया था। परिणाम नीचे छवि में दिखाया गया है।

एकल एक्सेल कॉलम पर बहु-मानदंड ऑटोफिल्टर लागू करने के 4 सिद्ध VBA तरीके

सफल कोड निष्पादन के बाद, कॉलम 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. एक्सेल में एक ही कॉलम पर OR ऑपरेटर के साथ ऑटोफिल्टर के लिए मैक्रो लागू करें

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

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

एकल एक्सेल कॉलम पर बहु-मानदंड ऑटोफिल्टर लागू करने के 4 सिद्ध VBA तरीके

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

चरण:

  • जैसा कि पहले दिखाया गया है, डेवलपर टैब से विजुअल बेसिक एडिटर खोलें और कोड विंडो में एक मॉड्यूल सम्मिलित करें।
  • फिर, निम्न कोड कॉपी करें और कोड विंडो में पेस्ट करें।
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

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

एकल एक्सेल कॉलम पर बहु-मानदंड ऑटोफिल्टर लागू करने के 4 सिद्ध VBA तरीके

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

एकल एक्सेल कॉलम पर बहु-मानदंड ऑटोफिल्टर लागू करने के 4 सिद्ध VBA तरीके

सफल कोड निष्पादन के बाद, कॉलम 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

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

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

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

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

निम्न डेटासेट देखें। कॉलम B में देश के नाम हैं। हम इस कॉलम को मैक्रो में हार्डकोड किए गए देश के आधार पर फ़िल्टर करेंगे। हम कॉलम को ऑटोफिल्टर करेंगे दो देश के नामों, ऑस्ट्रेलिया और इंग्लैंड के आधार पर।

एकल एक्सेल कॉलम पर बहु-मानदंड ऑटोफिल्टर लागू करने के 4 सिद्ध VBA तरीके

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

चरण:

  • सबसे पहले, डेवलपर टैब से विजुअल बेसिक एडिटर खोलें और कोड विंडो में एक मॉड्यूल सम्मिलित करें।
  • फिर, निम्न कोड कॉपी करें और कोड विंडो में पेस्ट करें।
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

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

एकल एक्सेल कॉलम पर बहु-मानदंड ऑटोफिल्टर लागू करने के 4 सिद्ध VBA तरीके

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

एकल एक्सेल कॉलम पर बहु-मानदंड ऑटोफिल्टर लागू करने के 4 सिद्ध VBA तरीके

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

VBA कोड व्याख्या

Dim iArray As Variant

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

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

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

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

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

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

निष्कर्ष

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

संबंधित लेख

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

  1. एकाधिक डिलीमीटर्स के साथ टेक्स्ट फ़ाइलों को एक्सेल में इम्पोर्ट करें: 3 सिद्ध विधियां एकाधिक डिलीमीटर्स के साथ टेक्स्ट फ़ाइलों को एक्सेल में इम्पोर्ट करें: 3 सिद्ध विधियां

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

  1. एक्सेल गाइड: दो सरल तरीकों से एकाधिक रंगों द्वारा डेटा फ़िल्टर करें एक्सेल गाइड: दो सरल तरीकों से एकाधिक रंगों द्वारा डेटा फ़िल्टर करें

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

  1. एक्सेल कॉलम को डिलीमिटेड टेक्स्ट स्ट्रिंग में बदलें - चरण-दर-चरण गाइड एक्सेल कॉलम को डिलीमिटेड टेक्स्ट स्ट्रिंग में बदलें - चरण-दर-चरण गाइड

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