Google शीट्स में पिछले 7 गैर-खाली गैर-रिक्त कक्षों का औसत


11

मेरे पास डी 7: डी में संख्याएं हैं और ऐसे समय होते हैं जब कुछ कोशिकाएं खाली होती हैं। मैं पिछले 7 नंबरों का औसत चाहता हूं लेकिन खाली छोड़ देता हूं। तो अगर पिछले 7 में केवल 3 ही भरे हुए हैं, तो मैं चाहता हूं कि यह और आगे बढ़े और 7 कुल मिलें और उन्हें औसत करें।

जवाबों:


6

यहाँ एक दृष्टिकोण है:

=average(indirect("D" & iferror(large(filter(row(D7:D), len(D7:D)), 7), row(D7)) & ":D"))

स्पष्टीकरण:

  • filter(row(D7:D), len(D7:D)) एक सरणी देता है जिसमें दी गई श्रेणी में गैर-रिक्त प्रविष्टियों की पंक्ति संख्या शामिल होती है।
  • large(..., 7) इस सरणी से 7 वीं सबसे बड़ी संख्या चुनता है: यह पंक्ति संख्या है जहां आप औसत शुरू करना चाहते हैं।
  • iferror(..., row(D7))यदि आपकी सीमा में 7 से कम गैर-रिक्त प्रविष्टियाँ हैं, तो एक सुरक्षा उपाय: इस मामले में, औसत D7 से शुरू होगा। मैं इसके बजाय सिर्फ "7" डाल सकता था row(D7), लेकिन row(D7)अगर आप इसे कहीं और कॉपी करने का फैसला करते हैं तो यह फॉर्मूला और अधिक पोर्टेबल बनाता है।
  • indirect("D" & ... & ":D")औसत के लिए सीमा बनाता है, उदाहरण के लिए, D9:Dयदि पूर्ववर्ती गणना का उत्पादन 9 था।
  • अंत में, averageऔसत करता है। आप यहां अन्य कुल कार्य भी कर सकते हैं।

नए बदलावों के लिए काम करता है और अपडेट करता है!
Spongebob Squarepants

धन्यवाद, लेकिन अब मुझे लगता है कि जेपीवी का उत्तर स्वीकार किया जाना चाहिए: यह सरल और अधिक शब्दार्थिक है।

यह मेरे लिए ठीक से अपडेट नहीं हुआ, मुझे लगा कि यह आसान है, लेकिन एक बार जब मैंने अधिक संख्या जोड़ ली तो यह काम नहीं किया।
Spongebob Squarepants

6

टी एल; डॉ

=AVERAGE(OFFSET(A:A;COUNT(A:A)-7 + MATCH(TRUE;INDEX(A:A<>0);0)-1;0))

उदाहरण

यहाँ छवि विवरण दर्ज करें

व्याख्या

  • पहले हम गिनते हैं कि पंक्ति A में कितने नंबर हैं =COUNT(A:A)। पाठ वाले कक्षों को गिना नहीं जाएगा। हमारा उदाहरण हमें देगा9
  • इस संख्या से हम 7 घटाते हैं क्योंकि आप अंतिम 7 मानों का औसत चाहते हैं =COUNT(A:A)-7:। इससे हमें ए 2
  • अब हम एक पूर्ण स्तंभ की एक सीमा प्राप्त करने के लिए ऑफसेट फ़ंक्शन का उपयोग करते हैं लेकिन 2 कोशिकाओं की एक ऑफसेट के साथ जो प्रभावी रूप से इसका मतलब है कि हमारे पास केवल 7 मान शेष के साथ छोड़ दिए गए कॉलम का एक हिस्सा है

    मूल्यों के साथ पहली सेल से पहले रिक्त कोशिकाओं के बिना एक स्तंभ की कल्पना करें। तब एक सरलीकृत उदाहरण दिख सकता था =OFFSET(A:A; COUNT(A:A)-7 ;0)। लेकिन यह काम नहीं करेगा जैसे ही कॉलम रिक्त कोशिकाओं के साथ शुरू होता है जैसे ऊपर चित्र में दिखाया गया है

  • अब हमें रिक्त कोशिकाओं की संख्या द्वारा अपने ऑफसेट का विस्तार करने की आवश्यकता है। इसका मतलब यह नहीं है कि हम सभी रिक्त मानों को एक पंक्ति में गिनते हैं। बस पहले गैर-खाली सेल से पहले वाले।

    आप उन्हें गिन सकते हैं =MATCH(TRUE;INDEX(A:A<>0);0)-1और 6परिणाम या हमारे उदाहरण के रूप में प्राप्त कर सकते हैं

    अब हम अपने ऑफसेट फ़ंक्शन को संशोधित करते हैं और केवल 7 मानों वाली सही सीमा प्राप्त करने के लिए इस गिनती को जोड़ते हैं
    OFFSET(A:A; COUNT(A:A)-7 + MATCH(TRUE;INDEX(A:A<>0);0)-1 ;0)

    यहाँ छवि विवरण दर्ज करें

  • अंतिम चरण के रूप में हम इस श्रेणी के औसत की गणना करते हैं। हमारा उदाहरण हमें 1,2,3,4,5,6,7 के औसत से 4 के परिणामस्वरूप 4 देगा।
    =AVERAGE(OFFSET(A:A;COUNT(A:A)-7 + MATCH(TRUE;INDEX(A:A<>0);0)-1;0))


बकाया जवाब।
एले

यह ठीक काम किया है, लेकिन एक बार मैंने एक और सेल जोड़ा, यह ठीक से अपडेट नहीं हुआ?
Spongebob Squarepants

2

अभी तक एक और तरीका:

=AVERAGE(ARRAY_CONSTRAIN(SORT(FILTER(A:A, ISNUMBER(A:A)), 1, 1), 7, 1))

Explantion:

  1. सभी संख्यात्मक मानों को फ़िल्टर करें
  2. सॉर्ट () का उपयोग करके स्तंभ को उल्टा कर दें (ताकि पिछले मान ऊपर हैं)
  3. उस कॉलम के आउटपुट को 7 पंक्तियों तक सीमित करें (ARRAY_CONSTRAIN का उपयोग करके)
  4. औसत लें ...

संपादित करें: गलतफहमी के लिए क्षमा करें। ऊपर दिए गए LARGEST 7 मानों का औसत, कॉलम के अंतिम 7 मानों का नहीं। पिछले 7 मूल्यों को औसत करने के लिए सामान्य मानव का समाधान बहुत अच्छा है। कम कार्यों के साथ एक वैकल्पिक तरीका QUERY () का उपयोग करना होगा

स्तंभ A में संख्यात्मक डेटा को मानते हुए, प्रयास करें:

=AVERAGE(QUERY(ARRAYFORMULA({ROW(A:A),A:A}),"select Col2 where Col2 is not null order by Col1 desc limit 7", 0))

0

=AVERAGE(IFERROR(QUERY(D7:D, 
 "where D is not null 
  offset "&COUNTA(QUERY(D7:D, "where D is not null", 0)) - 7, 0)))

0

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