यह ट्यूटोरियल आपको दिखाएगा कि VBA में एक्सेल COUNT फ़ंक्शन का उपयोग कैसे करें
VBA COUNT फ़ंक्शन का उपयोग आपके वर्कशीट में उन कक्षों की संख्या की गणना करने के लिए किया जाता है जिनमें उनमें मान होते हैं। इसे वीबीए में वर्कशीटफंक्शन विधि का उपयोग करके एक्सेस किया जाता है।
COUNT वर्कशीट फंक्शन
वर्कशीटफंक्शन ऑब्जेक्ट का उपयोग अधिकांश एक्सेल फ़ंक्शन को कॉल करने के लिए किया जा सकता है जो एक्सेल में इन्सर्ट फंक्शन डायलॉग बॉक्स में उपलब्ध हैं। COUNT फ़ंक्शन उनमें से एक है।
123 | सब टेस्टकाउंटफ़ंक्टिनोरेंज ("डी 33") = एप्लिकेशन। वर्कशीट फ़ंक्शन। गणना (रेंज ("डी 1: डी 32"))अंत उप |
आप COUNT फ़ंक्शन में अधिकतम 30 तर्क रख सकते हैं। प्रत्येक तर्क में कक्षों की श्रेणी का उल्लेख होना चाहिए।
नीचे दिया गया यह उदाहरण गणना करेगा कि डी1 से डी9 तक के सेल में कितने सेल मान से भरे हुए हैं
123 | उप टेस्टकाउंट ()रेंज ("डी 10") = एप्लिकेशन। वर्कशीट फ़ंक्शन। गणना (रेंज ("डी 1: डी 9"))अंत उप |
नीचे दिया गया उदाहरण गणना करेगा कि कॉलम डी में एक श्रेणी में और कॉलम एफ में एक श्रेणी में कितने मान हैं। यदि आप एप्लिकेशन ऑब्जेक्ट टाइप नहीं करते हैं, तो यह माना जाएगा।
123 | सब टेस्टकाउंट मल्टीपल ()रेंज ("G8") = वर्कशीटफंक्शन। काउंट (रेंज ("G2: G7"), रेंज ("H2: H7"))अंत उप |
एक चर के लिए एक गणना परिणाम असाइन करना
आप अपने सूत्र के परिणाम को सीधे वापस और एक्सेल रेंज में लिखने के बजाय कोड में कहीं और उपयोग करना चाह सकते हैं। यदि ऐसा है, तो आप परिणाम को अपने कोड में बाद में उपयोग करने के लिए एक चर के लिए असाइन कर सकते हैं।
1234567 | उप-असाइनकाउंट ()पूर्णांक के रूप में मंद परिणाम'चर असाइन करें'परिणाम = वर्कशीटफंक्शन। गणना (रेंज ("एच 2: एच 11"))'परिणाम दिखाएं'MsgBox "मानों से भरे सेल की संख्या है" और परिणामअंत उप |
एक श्रेणी वस्तु के साथ COUNT
आप रेंज ऑब्जेक्ट के लिए कक्षों का एक समूह असाइन कर सकते हैं, और फिर उस रेंज ऑब्जेक्ट का उपयोग कर सकते हैं कार्यपत्रक समारोह वस्तु।
123456789 | उप टेस्टकाउंटरेंज ()रेंज के रूप में मंद rng'कोशिकाओं की श्रेणी निर्दिष्ट करें'सेट आरएनजी = रेंज ("जी २: जी ७")'सूत्र में श्रेणी का प्रयोग करें'रेंज ("जी ८") = वर्कशीटफंक्शन। गणना (आरएनजी)'रेंज ऑब्जेक्ट जारी करें'सेट आरएनजी = कुछ नहींअंत उप |
COUNT एकाधिक रेंज ऑब्जेक्ट
इसी तरह, आप गिन सकते हैं कि कई रेंज ऑब्जेक्ट्स में मानों के साथ कितने सेल भरे हुए हैं।
123456789101112 | सब टेस्टकाउंट मल्टीपलरेंज ()रेंज के रूप में मंद rngAरेंज के रूप में मंद rngB'कोशिकाओं की श्रेणी निर्दिष्ट करें'आरएनजीए = रेंज सेट करें ("डी 2: डी 10")सेट आरएनजीबी = रेंज ("ई 2: ई 10")'सूत्र में श्रेणी का प्रयोग करें'रेंज ("ई 11") = वर्कशीट फ़ंक्शन। गणना (आरएनजीए, आरएनजीबी)'रेंज ऑब्जेक्ट जारी करें'सेट rngA = कुछ नहींसेट rngB = कुछ नहींअंत उप |
COUNTA . का उपयोग करना
गिनती केवल सेल में VALUES की गणना करेगी, यदि सेल में टेक्स्ट है तो यह सेल की गणना नहीं करेगा। किसी भी प्रकार के डेटा से भरी हुई कोशिकाओं की गणना करने के लिए, हमें COUNTA फ़ंक्शन का उपयोग करना होगा।
123 | उप टेस्टकाउंटए ()रेंज ("बी 8) = एप्लीकेशन। वर्कशीट फंक्शन। काउंटए (रेंज ("बी 1: बी 6"))अंत उप |
नीचे दिए गए उदाहरण में, COUNT फ़ंक्शन एक शून्य लौटाएगा क्योंकि स्तंभ B में कोई मान नहीं है, जबकि यह स्तंभ C के लिए एक 4 लौटाएगा। COUNTA फ़ंक्शन, हालांकि, उनमें पाठ वाले कक्षों की गणना करेगा और का मान लौटाएगा कॉलम बी में 5 जबकि अभी भी कॉलम सी में 4 का मान लौटा रहा है।
COUNTBLANKS का उपयोग करना
COUNTBLANKS फ़ंक्शन केवल कक्षों की श्रेणी में रिक्त कक्षों की गणना करेगा - अर्थात वे कक्ष जिनमें कोई डेटा नहीं है।
123 | सब टेस्टकाउंटब्लैंक ()रेंज ("बी 8) = एप्लीकेशन। वर्कशीटफंक्शन। काउंटब्लैंक्स (रेंज ("बी 1: बी 6"))अंत उप |
नीचे दिए गए उदाहरण में, स्तंभ B में कोई रिक्त कक्ष नहीं है जबकि स्तंभ C में एक रिक्त कक्ष है।
COUNTIF फ़ंक्शन का उपयोग करना
एक अन्य वर्कशीट फ़ंक्शन जिसका उपयोग किया जा सकता है वह है COUNTIF फ़ंक्शन।
123456 | उप टेस्टकाउंटिफ ()रेंज ("H14") = वर्कशीटफंक्शन। काउंटइफ (रेंज ("H2: H10"), "> 0")रेंज ("H15") = वर्कशीटफंक्शन। काउंटइफ (रेंज ("H2: H10"), "> 100")रेंज ("H16") = वर्कशीटफंक्शन। काउंटइफ (रेंज ("H2: H10"), "> 1000")रेंज ("H17") = वर्कशीटफंक्शन। काउंटइफ (रेंज ("H2: H10"), "> 10000")अंत उप |
ऊपर दी गई प्रक्रिया में केवल मान वाले कक्षों की गणना होगी यदि मानदंड मेल खाते हैं - 0 से अधिक, 100 से अधिक, 1000 से अधिक और 10000 से अधिक। सूत्र को सही ढंग से काम करने के लिए आपको मानदंड को उद्धरण चिह्नों के भीतर रखना होगा।
वर्कशीट फंक्शन के नुकसान
जब आप का उपयोग करते हैं कार्यपत्रक समारोह अपनी कार्यपत्रक में किसी श्रेणी में मानों की गणना करने के लिए, एक स्थिर मान लौटाया जाता है, लचीला सूत्र नहीं। इसका मतलब यह है कि जब एक्सेल में आपके आंकड़े बदलते हैं, तो वह मान जो द्वारा वापस किया गया है कार्यपत्रक समारोह बदलेगा नहीं।
उपरोक्त उदाहरण में, टेस्टकाउंट प्रक्रिया ने कॉलम एच में कोशिकाओं की गणना की है जहां एक मूल्य मौजूद है। जैसा कि आप सूत्र पट्टी में देख सकते हैं, यह परिणाम एक आकृति है न कि कोई सूत्र।
यदि कोई मान इस प्रकार रेंज (H2:H12) में बदलता है, तो H14 में परिणाम होगा नहीं परिवर्तन।
का उपयोग करने के बजाय कार्यपत्रक समारोह। गणना:, आप वीबीए का उपयोग सेल में काउंट फंक्शन को लागू करने के लिए कर सकते हैं सूत्र या फॉर्मूलाR1C1 तरीके।
सूत्र विधि का उपयोग करना
सूत्र विधि आपको विशेष रूप से कोशिकाओं की एक श्रेणी को इंगित करने की अनुमति देती है जैसे: H2:H12 जैसा कि नीचे दिखाया गया है।
123 | सब टेस्टकाउंटफॉर्मूलारेंज ("एच 14")। फॉर्मूला = "= गणना (एच 2: एच 12)"अंत उप |
फॉर्मूलाआर1सी1 विधि का उपयोग करना
FromulaR1C1 विधि इस मायने में अधिक लचीली है कि यह आपको कोशिकाओं की एक निर्धारित श्रेणी तक सीमित नहीं रखती है। नीचे दिया गया उदाहरण हमें वही उत्तर देगा जो ऊपर दिया गया है।
123 | सब टेस्टकाउंटफॉर्मूला ()रेंज ("एच 14")। फॉर्मूला = "= गणना (आर [-9] सी: आर [-1] सी)"अंत उप |
हालाँकि, सूत्र को अधिक लचीला बनाने के लिए, हम इस तरह दिखने के लिए कोड में संशोधन कर सकते हैं:
123 | सब टेस्टकाउंटफॉर्मूला ()ActiveCell.FormulaR1C1 = "= गणना (R[-11]C:R[-1]C)"अंत उप |
आप अपनी कार्यपत्रक में कहीं भी हों, तब सूत्र इसके ठीक ऊपर 12 कक्षों में मानों की गणना करेगा और उत्तर को आपके ActiveCell में रखेगा। COUNT फ़ंक्शन के अंदर की रेंज को Row (R) और Column (C) सिंटैक्स का उपयोग करके संदर्भित किया जाना है।
ये दोनों विधियाँ आपको VBA के भीतर डायनेमिक एक्सेल फ़ार्मुलों का उपयोग करने में सक्षम बनाती हैं।
अब H14 में मान के बजाय एक सूत्र होगा।