यह ट्यूटोरियल आपको दिखाएगा कि वीबीए में एक्सेल सम फ़ंक्शन का उपयोग कैसे करें
योग फ़ंक्शन सबसे व्यापक रूप से उपयोग किए जाने वाले एक्सेल फ़ंक्शन में से एक है, और संभवत: पहला ऐसा है जिसे एक्सेल उपयोगकर्ता उपयोग करना सीखते हैं। वीबीए के पास वास्तव में समकक्ष नहीं है - एक उपयोगकर्ता को वीबीए में अंतर्निहित एक्सेल फ़ंक्शन का उपयोग करना पड़ता है कार्यपत्रक समारोह वस्तु।
सम वर्कशीट फंक्शन
वर्कशीटफंक्शन ऑब्जेक्ट का उपयोग अधिकांश एक्सेल फ़ंक्शन को कॉल करने के लिए किया जा सकता है जो एक्सेल में इन्सर्ट फंक्शन डायलॉग बॉक्स में उपलब्ध हैं। SUM फ़ंक्शन उनमें से एक है।
123 | उप परीक्षण समारोहरेंज ("डी 33") = एप्लिकेशन। वर्कशीट फ़ंक्शन। योग ("डी 1: डी 32")अंत उप |
आप SUM फ़ंक्शन में अधिकतम 30 तर्क रख सकते हैं। प्रत्येक तर्क कक्षों की श्रेणी को भी संदर्भित कर सकता है।
नीचे दिया गया यह उदाहरण कोशिकाओं को D1 से D9 तक जोड़ देगा
123 | उप टेस्टसम ()रेंज ("डी 10") = एप्लीकेशन। वर्कशीटफंक्शन। एसयूएम ("डी 1: डी 9")अंत उप |
नीचे दिया गया उदाहरण कॉलम डी में एक श्रेणी और कॉलम एफ में एक श्रेणी जोड़ देगा। यदि आप एप्लिकेशन ऑब्जेक्ट टाइप नहीं करते हैं, तो यह माना जाएगा।
123 | उप टेस्टसम ()रेंज ("डी 25") = वर्कशीटफंक्शन। एसयूएम (रेंज ("डी 1: डी 24"), रेंज ("एफ 1: एफ 24"))अंत उप |
कोशिकाओं की एक श्रेणी के लिए सूचना आपको कक्षों के सामने सूत्र में 'रेंज' शब्द निर्दिष्ट करने की आवश्यकता नहीं है, यह कोड द्वारा माना जाता है। हालाँकि, यदि आप कई तर्कों का उपयोग कर रहे हैं, तो आपको ऐसा करने की आवश्यकता है।
एक चर के लिए एक योग परिणाम असाइन करना
आप अपने सूत्र के परिणाम को सीधे वापस और एक्सेल रेंज में लिखने के बजाय कोड में कहीं और उपयोग करना चाह सकते हैं। यदि ऐसा है, तो आप परिणाम को अपने कोड में बाद में उपयोग करने के लिए एक चर के लिए असाइन कर सकते हैं।
1234567 | सब-असाइनसम वेरिएबल ()डबल के रूप में मंद परिणाम'चर असाइन करें'परिणाम = वर्कशीटफंक्शन। एसयूएम (रेंज ("जी 2: जी 7"), रेंज ("एच 2: एच 7"))'परिणाम दिखाएं'MsgBox "श्रेणियों का कुल योग है" और परिणामअंत उप |
एक श्रेणी वस्तु का योग
आप रेंज ऑब्जेक्ट के लिए कक्षों का एक समूह असाइन कर सकते हैं, और फिर उस रेंज ऑब्जेक्ट का उपयोग कर सकते हैं कार्यपत्रक समारोह वस्तु।
123456789 | सब टेस्टसमरेंज ()रेंज के रूप में मंद rng'कोशिकाओं की श्रेणी निर्दिष्ट करें'सेट आरएनजी = रेंज ("डी 2: ई 10")'सूत्र में श्रेणी का प्रयोग करें'रेंज ("ई 11") = वर्कशीटफंक्शन। एसयूएम (आरएनजी)'रेंज ऑब्जेक्ट जारी करें'सेट आरएनजी = कुछ नहींअंत उप |
एकाधिक रेंज ऑब्जेक्ट्स का योग
इसी तरह, आप कई रेंज ऑब्जेक्ट्स को जोड़ सकते हैं।
123456789101112 | सब टेस्टसम मल्टीपलरेंज ()रेंज के रूप में मंद rngAरेंज के रूप में मंद rngB'कोशिकाओं की श्रेणी निर्दिष्ट करें'आरएनजीए = रेंज सेट करें ("डी 2: डी 10")सेट आरएनजीबी = रेंज ("ई 2: ई 10")'सूत्र में श्रेणी का प्रयोग करें'रेंज ("ई 11") = वर्कशीटफंक्शन। एसयूएम (आरएनजीए, आरएनजीबी)'रेंज ऑब्जेक्ट जारी करें'सेट rngA = कुछ नहींसेट rngB = कुछ नहींअंत उप |
संपूर्ण कॉलम या पंक्ति का योग
आप संपूर्ण कॉलम या पूरी पंक्ति को जोड़ने के लिए Sum फ़ंक्शन का भी उपयोग कर सकते हैं
नीचे दी गई यह प्रक्रिया कॉलम डी में सभी संख्यात्मक कोशिकाओं को जोड़ देगी।
123 | उप टेस्टसम ()रेंज ("एफ 1") = वर्कशीटफंक्शन। एसयूएम (रेंज ("डी: डी")अंत उप |
जबकि नीचे दी गई यह प्रक्रिया पंक्ति 9 में सभी संख्यात्मक कोशिकाओं को जोड़ देगी।
123 | उप टेस्टसम ()रेंज ("एफ 2") = वर्कशीटफंक्शन। एसयूएम (रेंज ("9: 9")अंत उप |
योग एक सरणी
आप किसी सरणी में मान जोड़ने के लिए WorksheetFunction.Sum का भी उपयोग कर सकते हैं।
123456789101112 | उप टेस्टअरे ()मंद intA(1 से 5) पूर्णांक के रूप मेंपूर्णांक के रूप में मंद समअरे'सरणी को पॉप्युलेट करें'इंटए(1) = 15इंटए(2) = 20इंट ए(3) = 25इंट ए(4) = 30इंटए(5) = ४०'सरणी जोड़ें और परिणाम दिखाएं'MsgBox वर्कशीटFunction.SUM(intA)अंत उप |
SumIF फ़ंक्शन का उपयोग करना
एक अन्य वर्कशीट फ़ंक्शन जिसका उपयोग किया जा सकता है वह है SUMIF फ़ंक्शन।
123 | उप टेस्टसमिफ ()रेंज ("डी 11") = वर्कशीटफंक्शन। एसयूएमआईएफ (रेंज ("सी 2: सी 10"), 150, रेंज ("डी 2: डी 10"))अंत उप |
उपरोक्त प्रक्रिया केवल रेंज (डी 2: डी 10) में कोशिकाओं को जोड़ देगी यदि कॉलम सी = 150 में संबंधित सेल।
योग सूत्र
जब आप का उपयोग करते हैं वर्कशीट फंक्शन। एसयूएम अपनी कार्यपत्रक में किसी श्रेणी में योग जोड़ने के लिए, एक स्थिर योग लौटाया जाता है, लचीला सूत्र नहीं। इसका मतलब यह है कि जब एक्सेल में आपके आंकड़े बदलते हैं, तो वह मान जो द्वारा वापस किया गया है कार्यपत्रक समारोह बदलेगा नहीं।
ऊपर के उदाहरण में, प्रक्रिया TestSum ने Range(D2:D10) को जोड़ दिया है और परिणाम D11 में डाल दिया गया है। जैसा कि आप सूत्र पट्टी में देख सकते हैं, यह परिणाम एक आकृति है न कि कोई सूत्र।
यदि कोई मान इस प्रकार रेंज (D2:D10) में बदलता है, तो D11 में परिणाम होगा नहीं परिवर्तन।
का उपयोग करने के बजाय वर्कशीट फंक्शन। एसयूएम, आप वीबीए का उपयोग सेल में सम फंक्शन लागू करने के लिए कर सकते हैं सूत्र या फॉर्मूलाR1C1 तरीके।
सूत्र विधि
सूत्र विधि आपको विशेष रूप से कक्षों की श्रेणी को इंगित करने की अनुमति देती है जैसे: D2:D10 जैसा कि नीचे दिखाया गया है।
123 | सब टेस्टसमफॉर्मूलारेंज ("डी 11")। फॉर्मूला = "= एसयूएम (डी 2: डी 10)"अंत उप |
फॉर्मूलाR1C1 विधि
FromulaR1C1 विधि इस मायने में अधिक लचीली है कि यह आपको कोशिकाओं की एक निर्धारित श्रेणी तक सीमित नहीं रखती है। नीचे दिया गया उदाहरण हमें वही उत्तर देगा जो ऊपर दिया गया है।
123 | सब टेस्टसमफॉर्मूला ()रेंज ("डी 11")। फॉर्मूलाआर 1 सी 1 = "= एसयूएम (आर [-9] सी: आर [-1] सी)"अंत उप |
हालाँकि, सूत्र को अधिक लचीला बनाने के लिए, हम इस तरह दिखने के लिए कोड में संशोधन कर सकते हैं:
123 | सब टेस्टसमफॉर्मूला ()ActiveCell.FormulaR1C1 = "= एसयूएम (आर [-9] सी: आर [-1] सी)"अंत उप |
आप अपनी कार्यपत्रक में कहीं भी हों, तब सूत्र इसके ठीक ऊपर 8 कक्षों को जोड़ देगा और उत्तर को आपके ActiveCell में डाल देगा। SUM फ़ंक्शन के अंदर की रेंज को Row (R) और Column (C) सिंटैक्स का उपयोग करके संदर्भित किया जाना है।
ये दोनों विधियाँ आपको VBA के भीतर डायनेमिक एक्सेल फ़ार्मुलों का उपयोग करने में सक्षम बनाती हैं।
D11 में अब एक मान के बजाय एक फॉर्मूला होगा।