यह ट्यूटोरियल प्रदर्शित करेगा कि VBA में पिवट टेबल फ़िल्टर का उपयोग कैसे करें।
पिवट टेबल एक्सेल का एक असाधारण शक्तिशाली डेटा टूल है। पिवट टेबल हमें फ़ील्ड और पंक्तियों को समूहीकृत और सारांशित करके बड़ी मात्रा में डेटा का विश्लेषण और व्याख्या करने में सक्षम बनाता है। हम अपने लिए प्रासंगिक डेटा को तुरंत देखने में सक्षम बनाने के लिए अपनी पिवट टेबल पर फ़िल्टर लागू कर सकते हैं।
सबसे पहले, हमें अपने डेटा के लिए एक पिवट टेबल बनाने की जरूरत है। (हमारी वीबीए पिवट टेबल गाइड के लिए यहां क्लिक करें)।
सेल मान के आधार पर फ़िल्टर बनाना
आप सेल वैल्यू में निहित डेटा के आधार पर वीबीए का उपयोग करके पिवट टेबल में फ़िल्टर कर सकते हैं - हम या तो पेज फ़ील्ड पर या पंक्ति फ़ील्ड पर फ़िल्टर कर सकते हैं (उदाहरण के लिए ऊपर आपूर्तिकर्ता फ़ील्ड पर या ऑपरेशन फ़ील्ड जो पंक्ति लेबल कॉलम में है) )
पिवट टेबल के दायीं ओर एक खाली सेल में, फिल्टर को होल्ड करने के लिए एक सेल बनाएं, और फिर उस सेल में डेटा टाइप करें, जिस पर आप पिवट टेबल को फिल्टर करना चाहते हैं।
निम्नलिखित वीबीए मैक्रो बनाएं:
1234567 | उप फ़िल्टरपेजवैल्यू ()PivotField के रूप में मंद pvFldस्ट्रिंग के रूप में मंद strFilterसेट pvFld = ActiveSheet.PivotTables("PivotTable1").PivotFields("Supplyer")strFilter = ActiveWorkbook.Sheets("Sheet1").Range("M4").ValuepvFld.CurrentPage = strFilterअंत उप |
फ़िल्टर लागू करने के लिए मैक्रो चलाएँ।
फ़िल्टर साफ़ करने के लिए, निम्न मैक्रो बनाएँ:
12345 | सब क्लियरफिल्टर ()पिवट टेबल के रूप में मंद पीटीबीएलसेट pTbl = ActiveSheet.PivotTables("PivotTable1")pTbl.ClearAllFiltersअंत उप |
इसके बाद फिल्टर हटा दिया जाएगा।
फिर हम वर्तमान पृष्ठ के बजाय पिवट तालिका में एक पंक्ति पर फ़िल्टर करने के लिए फ़िल्टर मानदंड में संशोधन कर सकते हैं।
निम्नलिखित मैक्रो टाइप करने से हम पंक्ति पर फ़िल्टर करने में सक्षम होंगे (ध्यान दें कि फ़िल्टर करने के लिए पिवट फ़ील्ड अब आपूर्तिकर्ता के बजाय ऑपरेशन है)।
1234567 | उप फ़िल्टररोवैल्यू ()PivotField के रूप में मंद pvFldस्ट्रिंग के रूप में मंद strFilterसेट pvFld = ActiveSheet.PivotTables("PivotTable1").PivotFields("Oper")strFilter = ActiveWorkbook.Sheets("Sheet1").Range("M4").ValuepvFld.PivotFilters.Add2 xlCaptionEquals, , strFilterअंत उप |
फ़िल्टर लागू करने के लिए मैक्रो चलाएँ।
पिवट फ़िल्टर में एकाधिक मानदंड का उपयोग करना
हम अतिरिक्त मानदंड जोड़कर उपरोक्त पंक्ति मान फ़िल्टर में जोड़ सकते हैं।
हालाँकि, जैसा कि मानक फ़िल्टर उन पंक्तियों को छुपाता है जिनकी आवश्यकता नहीं है, हमें मानदंड के माध्यम से लूप करने की आवश्यकता है और जो आवश्यक हैं उन्हें छिपाते हुए, जो आवश्यक नहीं हैं उन्हें दिखाना चाहिए। यह एक ऐरे वेरिएबल बनाकर और कोड में कुछ लूप्स का उपयोग करके किया जाता है।
1234567891011121314151617181920212223 | उप फ़िल्टरMultipleRowItems()संस्करण के रूप में मंद vArrayडिम आई अस इंटीजर, जे अस इंटीजरPivotField के रूप में मंद pvFldसेट pvFld = ActiveSheet.PivotTables("PivotTable1").PivotFields("Oper")vArray = रेंज ("एम 4: एम 5")pvFld.ClearAllFilterspvFld . के साथi = 1 के लिए pvFld.PivotItems.Count . के लिएजे = 1क्या करें जबकि j <= UBound(vArray, 1) - LBound(vArray, 1) + 1अगर pvFld.PivotItems(i).Name = vArray(j, 1) तबpvFld.PivotItems(pvFld.PivotItems(i).Name).Visible = TrueDo . से बाहर निकलेंअन्यथाpvFld.PivotItems(pvFld.PivotItems(i).Name).Visible = Falseअगर अंतजे = जे + 1कुंडलीअगला मैंके साथ समाप्त करनाअंत उप |
एक चर के आधार पर एक फ़िल्टर बनाना
हम सेल में मान के बजाय अपने कोड में चर के आधार पर फ़िल्टर बनाने के लिए समान अवधारणाओं का उपयोग कर सकते हैं। इस बार, फ़िल्टर वेरिएबल (strFilter) कोड में ही भरा हुआ है (उदाहरण: मैक्रो में हार्ड-कोडेड)।
1234567 | उप फ़िल्टर टेक्स्टवैल्यू ()PivotField के रूप में मंद pvFldस्ट्रिंग के रूप में मंद strFilterसेट pvFld = ActiveSheet.PivotTables("PivotTable1").PivotFields("Supplyer")strFilter = "थॉमस एस"pvFld.CurrentPage = strFilterअंत उप |