स्क्रिप्ट के बिना संचयी योग


35

के लिए यह सवाल है, मैं किसी Google Apps स्क्रिप्ट समारोह, कि एक सीमा के संचयी योग की गणना करता है बना लिया है। मार्टिन हॉकसी ने Google+ पर संचयी योग की गणना के अधिक कुशल तरीके के बारे में टिप्पणी की:

function cumulativeSum(array){
  var output = [];
  for (i in array){
    if(i==0) {
      if (array[i].length > 1) throw ("Only single column of data");
      output.push([array[i][0]]);
    } else {
      output.push([output[i-1][0] + array[i][0]]);
    }
  }
  return output;
}

मेरा प्रश्न है: क्या यह फॉर्मूला के उपयोग से प्राप्त किया जा सकता है?


बहुत देर से जवाब के लिए क्षमा याचना, मैंने सिर्फ दाईं ओर "संबंधित" में धागा देखा।
एडमल

जवाबों:


30

हाँ:

=ArrayFormula(SUMIF(ROW(A1:A10);"<="&ROW(A1:A10);A1:A10))

संचयी योग का उदाहरण

ग्रीन सर्कल में संख्याओं को सम्‍मिलित किया जा रहा है, ArrayFormula सेल के आधार पर अन्य सभी को आबाद कर रहा है, इस उदाहरण में मुझे A11, B1 और C1 में अपना प्रभाव दिखाने के लिए चिपकाया गया था।

यह स्प्रेडशीट, जो मैंने कुछ समय पहले यह समझाने का प्रयास किया था कि इन प्रकार की समस्याओं के लिए MMULT का उपयोग कैसे किया जा सकता है, और यह शीट में से किसी एक पर SUMIF समाधान भी प्रदर्शित करता है, जिसका उपयोग (और शायद) एक जैसे विशेष मामलों के लिए किया जाना चाहिए। इस सवाल में।


मैंने एक बार Google फ़ोरम: SUMIF (ROW (A: A); "<" & ROW (A: A)) पर यह सूत्र लिया, जो काम नहीं किया। यह एक करता है।
जैकब जान टुंस्ट्रा

उत्तर में छवि को किसी अन्य सदस्य द्वारा संपादित किया गया था: + जेवियर
कास्टो

1
@ फर्स्ट, मैंने "स्नैगिट" नामक एक उत्पाद का इस्तेमाल किया, जिसके बारे में अधिक जानकारी techsmith.com/download/snagit
Xavier Casto

@XavierCasto ओह, मैंने इसे एक लंबे समय पहले इस्तेमाल किया है, यह याद नहीं है कि यह ऐसा है, हालांकि यह बहुत समय पहले था। हालांकि उत्तर के लिए धन्यवाद, मुझे टेकस्मिथ के उत्पाद पसंद हैं।
कंप्यूटरलोक

31

आप चाहते हैं मान लें:

  Row | A | B | B's formula
  --------------------------------
   1  | 1 | 1 | =1     (or =A1)
   2  | 2 | 3 | =1+2   (or =A2+B1)
   3  | 3 | 6 | =1+2+3 (or =A3+B2)

आदि...

तब आप उपयोग कर सकते हैं: योग की संख्या =sum($A$1:A1)कहां A1से शुरू होती है। उस सूत्र को B1(या जहां आप चाहते हैं) रखो और इसे नीचे भरें, और यह आपके द्वारा पंक्ति में शामिल और शामिल सभी कक्षों को योग करेगा । वैकल्पिक रूप से, आप =Ax+Bx-1ऊपर "B के सूत्र" खंड से x (वर्तमान = ए, ए, संचयी योग में डेटा) का उपयोग कर सकते हैं ।


7
यह काम करने लगता है और स्वीकृत उत्तर की तुलना में बहुत सरल है
के राफेल

1
सहमत, यह सरल है और यह निर्बाध काम करता है!
लोरेटोपरसी

1

जबकि स्वीकृत उत्तर मौके पर है, इस तथ्य के कारण इसका एक बड़ा नुकसान यह है कि अंतिम पैरामीटर SUMIFहमेशा "वैध श्रेणी" का होना चाहिए, इसलिए जब यह कुछ और उन्नत चल कुल गणना की बात आती MMULTहै तो बेहतर विकल्प है:

=ARRAYFORMULA(IF(LEN(A1:A), 
 MMULT(TRANSPOSE((ROW(A1:A)<=TRANSPOSE(ROW(A1:A)))*A1:A), SIGN(A1:A)^2), ))

0

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