क्या एक्सेल में एक विशिष्ट मानदंड के आधार पर कोशिकाओं की एक मनमानी संख्या को जोड़ने का एक तरीका है?


0

इसलिए मेरे पास एक स्प्रेडशीट है जिसमें नीचे की तरह छोटे-छोटे चार्टों का एक गुच्छा है। नीले रंग में नंबर उपयोगकर्ता दर्ज किए गए हैं, और वे सभी चार्ट में एक साथ जोड़े गए हैं शीर्ष बाईं ओर ग्रे कोशिकाओं के साथ।

अभी, मैं एक मूल योग सूत्र के द्वारा ऐसा करता हूं। असली स्प्रेडशीट बहुत बड़ी है, लेकिन उदाहरण में C3 = = (J3 + C13 + J13) होगा, डी 3 में = योग (K3 + D13 + K13) होगा, और आगे। जैसा कि आप कल्पना कर सकते हैं, यह नए चार्ट जोड़ने या मौजूदा वाले को हटाने के लिए एक PITA है।

मैं व्यक्तिगत कोशिकाओं को जोड़ने के बिना स्वचालित रूप से ऐसा करने का एक तरीका चाहूंगा, इसलिए मैं संख्याओं को जोड़ना या हटा सकता हूं, जबकि मैं अभी भी संख्याओं को जोड़ना चाहता हूं।

तो यह ऐसा होगा, सेल E5 एक शीट में सभी कोशिकाओं की गिनती करेगा जहां एक संख्या III के नीचे तीन सेल और एन / ए के दाईं ओर तीन सेल है। या कुछ और जो एक ही चीज को पूरा करता है।

क्या मेरी स्प्रैडशीट के लेआउट को बदले बिना इसे पूरा करने का कोई तरीका है?

(N / As को नजरअंदाज करें, मैंने अभी-अभी कॉपी और पेस्ट किया है और बिना किसी फॉर्मूले के फॉर्मूले को सरल बनाने के लिए तस्वीर बनाई है, जब मैंने ऐसा किया था)। यहाँ छवि विवरण दर्ज करें


Sumअनियंत्रित श्रेणियों को जोड़ देगा। मान लें कि आपके टेबल हमेशा एक जैसे ही रखे जाते हैं और आपकी टेबल के आसपास कभी भी कोई अतिरिक्त डेटा नहीं होगा , तो आप आसानी से अपना फॉर्मूला बना सकते हैं =Sum(J3, C13, J13, C23, J23, ..... ,C500003, J500003, etc)(जैसा कि एक साइड नोट, आपका उदाहरण, =sum(J3+C13+J13)एक साथ 3 सेल वैल्यू को जोड़ रहा है, फिर उस सिंगल नंबर को सम्‍मिलित करें । क्योंकि तुम योग समारोह के अंदर plusses का उपयोग किया है योग अपने उदाहरण में अनावश्यक है, और यह बस के रूप में आसानी से के रूप में लिखा जा सकता है =J3+C13+J13बजाय राशि का उपयोग करने के, इस तरह अल्पविराम का उपयोग फिर से लिखने के लिए:। =sum(J3,C13,J13))
टिम

@ समय - यह है कि यह अब कैसे काम करता है, मैं इसे किसी तरह से बदलने की कोशिश कर रहा हूं ताकि व्यक्तिगत कोशिकाओं को कभी भी सूत्र में निर्दिष्ट नहीं करना पड़े, बल्कि यह किसी भी तरह हर सेल को पहचानता है जिसे इसे देखकर जोड़ना होगा प्रत्येक चार्ट के लिए शीर्ष (I, II, III) और साइड्स (ओपन, क्लोज्ड, एन / ए) पर लेबल मौजूद हो सकता है। बहुत यकीन है कि यह vba में प्रबंधित किया जा सकता है, लेकिन यदि संभव हो तो मैं इसे एक सूत्र के रूप में करना चाहूंगा।
केफ्का

जवाबों:


0

संक्षेप में, आपके चार्ट लेआउट को संशोधित किए बिना ऐसा करने का कोई तरीका नहीं है जो आपके द्वारा उपयोग किए जाने वाले से कहीं अधिक कोशिकाओं को निर्दिष्ट करने से बेहतर नहीं है। ऊपर मेरे उदाहरण में, मैं सेल पर समाप्त होता हूं J500003। मान लीजिए कि आपके चार्ट पंक्ति 470 पर समाप्त होते हैं। यह कोई समस्या नहीं है। खाली कोशिकाएं 0 के रूप में गिनी जाती हैं और योग को प्रभावित नहीं करती हैं। यदि आप सूत्र को शुरू करने के लिए मनमाने ढंग से उच्च बनाते हैं, तो आपको सूत्र को फिर से संशोधित करने की आवश्यकता नहीं है।

यदि आप चार्ट के लेआउट के अतिरिक्त मामूली रूप से खुले हैं, तो सूत्र छोटा हो सकता है, लेकिन फिर भी बड़ी संख्या में अप्रयुक्त कोशिकाओं को निर्दिष्ट करेगा। यदि आप Open के ऊपर सेल में "Header" (या "Status" या कुछ भी) जोड़ते हैं, तो आप उन कॉलम को डेटाबेस या उपयोग के रूप में मान सकते हैंDSUM

उदाहरण के लिए, यहां नया लेआउट है:

    ABCDEF
12 हैडर I II II कुल
13 ओपन 1 75 21 97
14 बंद 21 312 39 372
15 एन / ए 2 47 7 56
16 अनारक्षित                   
17 कुल संभव                   
18 कुल 24434 67 525 की समीक्षा की
19 प्रतिशत पूर्ण                 
20
21                  
22 I II II कुल
23 ओपन 1 75 21 97
24 बंद 21 312 39 372
25 एन / ए 2 47 7 56
26 अनारक्षित                   
27 कुल संभव                   
28 कुल 24434 67 525 की समीक्षा की
29 प्रतिशत पूर्ण                 

(आपको वास्तव में कोशिकाओं A12 और H2 में अपने स्ट्रिंग के पाठ को जोड़ने की आवश्यकता है। मैंने अपने उदाहरण लेआउट में "हेडर" का उपयोग किया है।)

A1 में अब वह कॉलम निर्दिष्ट करें जो आप चाहते हैं और A2 में उस कॉलम में मिलान करने के लिए मान निर्दिष्ट करें। उदाहरण के लिए, मैं "ओपन" वाले सभी "I" जोड़ना चाहता हूं, इसलिए A1 "हैडर" है (क्योंकि यह नाम मैंने लेबल का कॉलम दिया है) और A2 "ओपन" होगा और फिर सूत्र होगा हो =DSUM(A12:F140000,"I",A1:A2)+DSUM(H2:M140000,"I",A1:A2)यह एक बहुत छोटे फार्मूले के लिए बनाता है, लेकिन यह किसी भी 7 या अधिक कुशल नहीं है और अभी भी संभावित अप्रयुक्त कोशिकाओं को संदर्भित करता है।

यदि आप पूरी तरह से अप्रयुक्त कोशिकाओं को छूने से बचना चाहते हैं और दो कोशिकाओं में पाठ जोड़ना नहीं चाहते हैं, तो आपको VBA के साथ लूपिंग का सहारा लेना होगा।


0

निम्न सूत्र काम करेगा, लेकिन केवल अगर आप अपने कुछ स्वरूपण को बदलते हैं।

स्वरूपण परिवर्तन आवश्यक:

  1. गणना उन कक्षों की श्रेणी के भीतर नहीं हो सकती, जिनकी आप गणना करना चाहते हैं। तो आप अपने स्वरूपण को कुछ इस तरह से बदल सकते हैं

चित्र 1

एक बार जब आपके पास मुख्य शरीर के बाहर अपने योग होते हैं, तो निम्न सूत्र ठीक काम करेगा। यह C4अन्य कोशिकाओं में कॉपी-पेस्ट किया जाएगा। (सूत्र एक सरणी सूत्र है, और इसे CTRL-SHIFT-ENTER के साथ दर्ज किया जाना चाहिए)

{=SUM(IF(COLUMN($A$12:$M$25)=(IF($A$12:$M$12=C$3,COLUMN($A$12:$M$12))),
IF(ROW($A$12:$M$25)=IF($A$12:$A$25=$A4,ROW($A$12:$A$25)),$A$12:$M$25)))}

$A$12:$M$25उस बड़े सरणी का विस्तार करें जिसे आप कवर करना चाहते हैं, और सुनिश्चित करें कि $A$12:$M$12यह सरणी की पूरी पहली पंक्ति है और सरणी $A$12:$A$25की पूरी लंबाई है।

यह फॉर्मूला केवल तब तक काम करेगा जब तक आप ग्रिड पैटर्न बनाए रखते हैं, क्योंकि यह केवल I, II, IIIपहली पंक्ति और "open" "closed" and "N/A"पहले कॉलम पर दिखता है , फिर चौराहों की गणना करता है।

सूत्र को थोड़ा और समझाने के लिए:

  1. यदि स्टेटमेंट्स एम्बेडेड है: IF($A$12:$M$12=C$3उपयुक्त कॉलम IF($A$12:$A$25=$A4पाता है और स्टेटमेंट उपयुक्त पंक्ति पाता है।

  2. बाहरी यदि कथन: IF(COLUMN($A$12:$M$25)और IF(ROW($A$12:$M$25)कौन सी कोशिकाएँ दोनों मानदंडों को पूरा करती हैं

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