मैं किसी सरणी में केवल पंक्तियों की # संख्या कैसे गिनूं यदि प्रत्येक पंक्ति के लिए संख्याओं का योग Excel में 0 है?


3

मुझे एक्सेल में यादृच्छिक संख्याओं (कहें A2 से ET361) के साथ 150 कॉलम x 360 पंक्ति सरणी मिली है।

मैं प्रत्येक कॉलम (यानी सेल B1 से ET1 तक) की गणना कैसे करूं, इससे पहले कॉलम के लिए कितनी पंक्तियाँ शून्य से अधिक हैं?

मानदंड:

बी 1 को कोशिकाओं के # (A2 से A361) की गणना करने की आवश्यकता है जो कि> 0 हैं।
C1 को # पंक्तियों की # गणना करने की आवश्यकता है (A2: B2, A3: B3, ..., A361: B361) जहां प्रत्येक पंक्ति का योग> 0 है।
D1 को # पंक्तियों की # गणना करना है (A2: C3, ..., A361: C361) जहां प्रत्येक पंक्ति का योग> 0 है।

मैंने COUNTIF फॉर्मूले का उपयोग करने की कोशिश की है, लेकिन यह केवल # सेल का है, न कि # रो का।
मुझे लगता है कि मुझे एक नेस्टेड ROWS () और IF () फॉर्मूला चाहिए? मैं इस समस्या से निपटने के लिए एक और 150 x 360 मैट्रिक्स भी नहीं बनाना चाहता क्योंकि मैं अपनी एक्सेल फाइल में जगह बचाना चाहता हूं।

मैं मैक्रो और वीबीए का उपयोग नहीं करना चाहता क्योंकि वे मेरी स्प्रेडशीट को जटिल करते हैं।


मेरे पास पूरे समीकरण में एक जटिलता है, जिससे सबटोटल फ़ंक्शन काम नहीं करता है।

मुझे इसके ऊपर की पंक्तियों की # गणना करने के लिए मैट्रिक्स के भीतर प्रत्येक सेल की आवश्यकता है, जिसके लिए प्रत्येक पंक्ति के लिए कॉलम का योग शून्य से अधिक है। बैरी द्वारा समाधान इस उदाहरण में काम नहीं करेगा (मैंने इसे जांचा है) 'सबटोटल' फॉर्मूला उन कोशिकाओं के लिए काम नहीं करता जिनके पास 'सबटोटल' फॉर्मूला है।

क्या हमारे पास कोई अन्य विकल्प है?


मैंने इसे स्पष्ट करने के प्रयास में आपके प्रश्न का संपादन किया। अगर मुझे यह गलत लगा, तो कृपया इसे ठीक करें।
स्कॉट

जवाबों:


2

हालांकि मैं एक भी फार्मूला समाधान नहीं सोच पा रहा हूँ (हो सकता है कि कोई और!), मैं एक ऐसी चीज़ के साथ आया था जो किसी अन्य 150 x 360 मैट्रिक्स की तुलना में बहुत कम स्प्रेडशीट अचल संपत्ति को लेती है।

मूल विचार डेटा के एक कॉलम के लिए प्रत्येक पंक्ति में संचयी योगों की गणना करना है और फिर सभी स्तंभों के लिए गणना उत्पन्न करने के लिए डेटा तालिका ("क्या-अगर विश्लेषण") में इसका उपयोग करना है।

प्रारंभिक बिंदु एक एकल डेटा कॉलम में पंक्तियों के लिए गणना का स्तंभ है।

जैसा कि नीचे स्क्रीनशॉट में दिखाया गया है, मैंने 10 कॉलम डेटा के साथ एक वर्कशीट स्थापित की है।

हेल्पर कॉलम

डेटा के दाईं ओर, मैंने सहायक स्तंभ L सेट किया है।

सेल L1 COUNTIFमें उस कॉलम की पंक्तियाँ होती हैं जिनमें शून्य से अधिक राशि होती है।

पंक्ति रकम के लिए, प्रत्येक पंक्ति में स्तंभों के एक साधारण योग के बजाय (फिर, केवल कॉलम ए के लिए) मैं OFFSETफ़ंक्शन द्वारा लौटी सीमा का एक योग का उपयोग करता हूं । इस फ़ंक्शन का रूप है

OFFSET(reference cell, number of rows to offset, number of columns to offset, 
       height of range to return, width of range to return)

सेल L3 में सबसे पहले SUM(OFFSET(...))भाव हैं। यह उस सीमा के लिए पंक्ति योग की गणना करता है जो सेल A2 से 0 पंक्तियों तक और 0 स्तंभों से दाईं ओर, 1 पंक्ति की ऊँचाई और सेल L2 में मान के बराबर चौड़ाई के साथ है। इस स्थिति में, L2 का मान 1 है।

इस सूत्र को 360 पंक्तियों के माध्यम से कॉपी किया जाता है, प्रत्येक मामले में श्रेणी 1 पंक्ति का योग और सेल 2 में मान द्वारा निर्धारित चौड़ाई के साथ गणना करता है।

परीक्षा के लिए, यदि L2 में मान 2 में बदल दिया गया था, तो कॉलम में सूत्र 360 A में से प्रत्येक के लिए कॉलम A & B में मानों की पंक्ति-वार राशि की गणना करेंगे। और सेल L1 रेंज A2: B361 में पंक्तियों की संख्या को 0 से अधिक की राशि के साथ दिखाएगा।

एकल डेटा कॉलम के लिए कम्प्यूटिंग पंक्ति गणना

विवरण सारणी

एक्सेल की डेटा टेबल की कार्यक्षमता उस गणना के इनपुट के एक (या दो) के मूल्य में भिन्नता की गणना पर प्रभाव को जल्दी से निर्धारित करना संभव बनाती है। यह रिबन पर टैब What-If Analysisके Data Toolsअनुभाग में बटन के माध्यम से स्थापित किया गया है Data

साथ की तस्वीर डेटा टेबल सेटअप दिखाती है।

डेटा तालिका R1: S10 श्रेणी में बनाई जाएगी। तालिका के शीर्ष पर, सेल S1 में परिणाम सेल है जिसके लिए इनपुट विविध होंगे। इस मामले में, परिणाम सेल सूत्र को धारण करता है =L1, जो COUNTIFकि सहायक स्तंभ एल के शीर्ष पर सूत्र का केवल एक संदर्भ है ।

मैंने कोशिकाओं R2 में "क्या-अगर" मानों को पूर्व-प्रविष्ट किया: R10। दिखाए गए मान - 1, 2, ..., 9 - उन सीमाओं की चौड़ाई का प्रतिनिधित्व करते हैं जो OFFSET वापस आएंगे। और "कॉलम इनपुट सेल" सेल है L1, सेल जो पंक्तियों की चौड़ाई निर्धारित करता है जो हेल्पर कॉलम में अभिव्यक्त होते हैं।

संक्षेप में, हम 1-9 (कॉलम "ए", "ए: बी", "ए: सी", आदि) की चौड़ाई में फ़ीड करते हैं और डेटा टेबल उन पंक्तियों की संख्या की गणना करता है जिनकी संख्या 0 से अधिक है। उन स्तंभों में से प्रत्येक के लिए।

डेटा टेबल सेटअप

अंतिम तस्वीर अंतिम परिणाम दिखाती है। डेटा तालिका ने इनपुट डेटा के प्रत्येक कॉलम के लिए पंक्ति गणना की गणना की है, अर्थात, पंक्ति-वार रकम (पिछले कॉलम की) की संख्या जो 0. से अधिक है। उन गणनाओं को सेल S2 में वापस किया गया: डेटा का S10 तालिका। मैंने TRANSPOSEफ़ंक्शन का उपयोग करके मूल डेटा की पहली पंक्ति में गणना को स्थानांतरित कर दिया ।

अंतिम परिणाम

सभी गणनाओं के साथ उदाहरण वर्कशीट यहां उपलब्ध है


2

OFFSETफ़ंक्शन आपको एक सीमा के भीतर अलग-अलग पंक्तियों को अलग करने की अनुमति देता है ... और फिर आप प्रत्येक पंक्ति SUBTOTALको पंक्तियों के साथ जोड़ सकते हैं> 0 के साथ पंक्तियों की गणना कर सकते हैं SUMPRODUCT, इसलिए B1 में कॉपी किए गए इस फॉर्मूले को बिना किसी सहायक कोशिकाओं के साथ काम करना चाहिए

=SUMPRODUCT((SUBTOTAL(9,OFFSET($A2:A2,ROW(A2:A361)-ROW(A2),0))>0)+0)

यह यहाँ वर्णित के समान एक तकनीक का उपयोग करता है [ यहाँ कोई फ़िल्टरिंग नहीं है लेकिन SUBTOTAL को अभी भी OFFSET द्वारा उत्पन्न प्रत्येक श्रेणी को योग करने के लिए उपयोग करने की आवश्यकता है]

यह आपको चफ के समाधान के समान परिणाम देगा


1

यदि मैं सही ढंग से समझता हूं कि आप क्या पूछ रहे हैं, तो आप चाहते हैं कि शीर्ष पंक्ति, प्रत्येक कॉलम के लिए, इससे पहले सभी कॉलमों में मान> 0 के साथ व्यक्तिगत कोशिकाओं की कुल संख्या । सही?

यदि हां, तो यह संदर्भ को लॉक करने के CountIfलिए $साइन का उपयोग और उपयोग करने के लिए बहुत सरल है ।

सेल बी 1 में, अंदर डालें =CountIf($A2:A361,">0")। क्लिक करें और दाईं ओर खींचें। यह $संकेत लॉक करता Aहै कि यह हमेशा कॉलम ए और वर्तमान कॉलम के बीच सब कुछ गिन रहा है। सूत्र इस तरह दिखेगा जैसे आप उसे खींचते हैं:

  • सी 1 =Countif($A2:B361,">0")
  • डी 1: =Countif($A2:C361,">0")
  • ई 1: =Countif($A2:D361,">0")
  • आदि...

CountIfएक संपूर्ण सीमा पर भरोसा कर सकते हैं, आपको एक बार में केवल एक सेल या सूत्र का चयन करने की आवश्यकता नहीं है। तो इस तरह से इसका उपयोग करके, आप आसानी से हर एक सेल को वर्तमान कॉलम के बाईं ओर गिन सकते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.