यह ट्यूटोरियल आपको दिखाएगा कि वीबीए में एक्सेल औसत फ़ंक्शन का उपयोग कैसे करें।
एक्सेल औसत फ़ंक्शन का उपयोग आपकी वर्कशीट में एक श्रेणी कक्षों से औसत की गणना करने के लिए किया जाता है जिसमें उनमें मान होते हैं। VBA में, इसे WorksheetFunction विधि का उपयोग करके एक्सेस किया जाता है।
औसत वर्कशीट फ़ंक्शन
वर्कशीटफंक्शन ऑब्जेक्ट का उपयोग अधिकांश एक्सेल फ़ंक्शन को कॉल करने के लिए किया जा सकता है जो एक्सेल में इन्सर्ट फंक्शन डायलॉग बॉक्स में उपलब्ध हैं। AVERAGE फ़ंक्शन उनमें से एक है।
123 | उप परीक्षण समारोहरेंज ("डी 33") = एप्लिकेशन। वर्कशीट फ़ंक्शन। औसत ("डी 1: डी 32")अंत उप |
आपके पास AVERAGE फ़ंक्शन में अधिकतम 30 तर्क हो सकते हैं। प्रत्येक तर्क में कक्षों की श्रेणी का उल्लेख होना चाहिए।
नीचे दिया गया यह उदाहरण कोशिकाओं B11 से N11 . के योग का औसत उत्पन्न करेगा
123 | उप परीक्षण औसत ()रेंज ("ओ 11") = एप्लिकेशन। वर्कशीट फ़ंक्शन। औसत (रेंज ("बी 11: एन 11"))अंत उप |
नीचे दिया गया उदाहरण B11 से N11 में कोशिकाओं के योग का औसत और B12:N12 में कोशिकाओं के योग का उत्पादन करेगा। यदि आप एप्लिकेशन ऑब्जेक्ट टाइप नहीं करते हैं, तो यह मान लिया जाएगा।
123 | उप परीक्षण औसत ()रेंज ("ओ 11") = वर्कशीट फ़ंक्शन। औसत (रेंज ("बी 11: एन 11"), रेंज ("बी 12: एन 12"))अंत उप |
एक चर के लिए एक औसत परिणाम असाइन करना
हो सकता है कि आप अपने सूत्र के परिणाम को सीधे किसी एक्सेल श्रेणी में लिखने के बजाय कोड में कहीं और उपयोग करना चाहें। यदि ऐसा है, तो आप परिणाम को अपने कोड में बाद में उपयोग करने के लिए एक चर के लिए असाइन कर सकते हैं।
1234567 | उप असाइन औसत ()पूर्णांक के रूप में मंद परिणाम'चर असाइन करें'परिणाम = वर्कशीटफंक्शन। औसत (रेंज ("ए 10: एन 10"))'परिणाम दिखाएं'MsgBox "इस श्रेणी में कोशिकाओं के लिए औसत है" और परिणामअंत उप |
रेंज ऑब्जेक्ट के साथ औसत
आप रेंज ऑब्जेक्ट के लिए कक्षों का एक समूह असाइन कर सकते हैं, और फिर उस रेंज ऑब्जेक्ट का उपयोग कर सकते हैं कार्यपत्रक समारोह वस्तु।
123456789 | सब टेस्ट एवरेजरेंज ()रेंज के रूप में मंद rng'कोशिकाओं की श्रेणी निर्दिष्ट करें'सेट आरएनजी = रेंज ("जी २: जी ७")'सूत्र में श्रेणी का प्रयोग करें'रेंज ("जी ८") = वर्कशीटफंक्शन। औसत (आरएनजी)'रेंज ऑब्जेक्ट जारी करें'सेट आरएनजी = कुछ नहींअंत उप |
औसत एकाधिक रेंज ऑब्जेक्ट्स
इसी तरह, आप कई रेंज ऑब्जेक्ट्स से सेल के औसत की गणना कर सकते हैं।
123456789101112 | सब टेस्ट एवरेज मल्टीपलरेंज ()रेंज के रूप में मंद rngAरेंज के रूप में मंद rngB'कोशिकाओं की श्रेणी निर्दिष्ट करें'आरएनजीए = रेंज सेट करें ("डी 2: डी 10")सेट आरएनजीबी = रेंज ("ई 2: ई 10")'सूत्र में श्रेणी का प्रयोग करें'रेंज ("ई 11") = वर्कशीट फ़ंक्शन। औसत (आरएनजीए, आरएनजीबी)'रेंज ऑब्जेक्ट जारी करें'सेट rngA = कुछ नहींसेट rngB = कुछ नहींअंत उप |
AVERAGEA का उपयोग करना
AVERAGEA फ़ंक्शन AVERAGE फ़ंक्शन से भिन्न होता है जिसमें यह एक श्रेणी में सभी कक्षों से औसत बनाता है, भले ही किसी एक कक्ष में टेक्स्ट हो - यह टेक्स्ट को शून्य से बदल देता है और औसत की गणना में इसे शामिल करता है। AVERAGE फ़ंक्शन उस सेल को अनदेखा कर देगा और उसे गणना में शामिल नहीं करेगा।
123 | सब टेस्ट एवरेजए ()रेंज ("बी 8) = एप्लिकेशन। वर्कशीट फ़ंक्शन। औसत ए (रेंज ("ए 10: ए 11"))अंत उप |
नीचे दिए गए उदाहरण में, जब सेल A10 से A11 पर गणना का उपयोग किया जाता है, तो AVERAGE फ़ंक्शन AVERAGEA फ़ंक्शन के लिए एक भिन्न मान लौटाता है
AVERAGEA सूत्र का उत्तर औसत सूत्र से कम है क्योंकि यह A11 में पाठ को शून्य से बदल देता है, और इसलिए औसत से अधिक की गणना करने वाले 12 मानों के बजाय 13 से अधिक मानों का औसत होता है।
AVERAGEIF . का उपयोग करना
AVERAGEIF फ़ंक्शन आपको एक निश्चित मानदंड को पूरा करने वाले कक्षों की श्रेणी के योग को औसत करने की अनुमति देता है।
123 | उप औसत अगर ()रेंज ("F31") = वर्कशीटफंक्शन। एवरेजइफ (रेंज ("F5: F30"), "बचत", रेंज ("G5: G30"))अंत उप |
ऊपर की प्रक्रिया केवल G5:G30 श्रेणी में कोशिकाओं को औसत करेगी जहां कॉलम F में संबंधित सेल में 'बचत' शब्द है। आपके द्वारा उपयोग किए जाने वाले मानदंड उद्धरण चिह्नों में होने चाहिए।
वर्कशीट फंक्शन के नुकसान
जब आप का उपयोग करते हैं कार्यपत्रक समारोह आपकी कार्यपत्रक में किसी श्रेणी में मानों को औसत करने के लिए, एक स्थिर मान लौटाया जाता है, लचीला सूत्र नहीं। इसका मतलब यह है कि जब एक्सेल में आपके आंकड़े बदलते हैं, तो वह मान जो द्वारा वापस किया गया है कार्यपत्रक समारोह बदलेगा नहीं।
ऊपर के उदाहरण में, प्रक्रिया TestAverage प्रक्रिया ने B11:M11 का औसत बनाया है और उत्तर को N11 में रखा है। जैसा कि आप सूत्र पट्टी में देख सकते हैं, यह परिणाम एक आकृति है न कि कोई सूत्र।
यदि कोई भी मान रेंज (B11:M11 ) में बदल जाता है, तो N11 में परिणाम होगा नहीं परिवर्तन।
का उपयोग करने के बजाय कार्यपत्रक समारोह। औसत, आप VBA का उपयोग करके सेल में AVERAGE फंक्शन लागू करने के लिए का उपयोग कर सकते हैं सूत्र या फॉर्मूलाR1C1 तरीके।
सूत्र विधि का उपयोग करना
सूत्र विधि आपको विशेष रूप से कक्षों की श्रेणी को इंगित करने की अनुमति देती है जैसे: B11:M11 जैसा कि नीचे दिखाया गया है।
123 | सब टेस्ट एवरेजफॉर्मूला ()रेंज ("एन 11")। फॉर्मूला = "= औसत (बी 11: एम 11)"अंत उप |
फॉर्मूलाआर1सी1 विधि का उपयोग करना
FomulaR1C1 विधि इस मायने में अधिक लचीली है कि यह आपको कोशिकाओं की एक निर्धारित श्रेणी तक सीमित नहीं रखती है। नीचे दिया गया उदाहरण हमें वही उत्तर देगा जो ऊपर दिया गया है।
123 | सब टेस्ट एवरेजफॉर्मूला ()रेंज ("एन 11")। फॉर्मूला = "= औसत (आरसी [-12]: आरसी [-1])"अंत उप |
हालाँकि, सूत्र को अधिक लचीला बनाने के लिए, हम इस तरह दिखने के लिए कोड में संशोधन कर सकते हैं:
123 | सब टेस्टकाउंटफॉर्मूला ()ActiveCell.FormulaR1C1 = "= गणना (R[-11]C:R[-1]C)"अंत उप |
आप अपनी कार्यपत्रक में कहीं भी हों, तब सूत्र इसके बाईं ओर सीधे 12 कक्षों में मानों का औसत करेगा और उत्तर को आपके ActiveCell में रखेगा। AVERAGE फ़ंक्शन के अंदर की रेंज को Row (R) और Column (C) सिंटैक्स का उपयोग करके संदर्भित किया जाना है।
ये दोनों विधियाँ आपको VBA के भीतर डायनेमिक एक्सेल फ़ार्मुलों का उपयोग करने में सक्षम बनाती हैं।
N11 में अब एक मान के बजाय एक फॉर्मूला होगा।