스크립트가없는 누적 합계


35

들어 질문에 나는 범위의 누적 합계를 계산하는 Google 애플리케이션 스크립트 기능을 만들었습니다. Google+의 Martin Hawksey 는 누적 합계를 계산하는보다 효율적인 방법에 대한 의견을 제시했습니다.

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;
}

내 질문은 : 수식을 사용하여 이것을 달성 할 수 있습니까?


답변이 늦어 죄송합니다. 오른쪽에 "관련"이라는 글이 있습니다.
AdamL

답변:


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))에서이 공식을 한 번 (귀하의 것으로 생각했습니다) 작동했지만 작동하지 않았습니다. 이거에요
Jacob Jan Tuinstra 2016 년

답변의 이미지는 다른 회원이 편집했습니다 : + Xavier Casto
AdamL

1
@Fogest, 나는 "Snagit은은"더 많은 대해 알아라는 제품 사용 techsmith.com/download/snagit
하비에르 카스 토

@XavierCasto 오, 나는 이것을 오래 전에 사용했지만 오래 전에도 이것을 가지고 있다는 것을 기억하지 못했습니다. 답변 주셔서 감사합니다, 나는 techsmith의 제품을 좋아합니다.
ComputerLocus

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 = 현재 행, A의 데이터, B의 누적 합계) 형식을 사용할 수 있습니다.


7
이것은 작동하는 것으로 보이며 허용되는 답변보다 훨씬 간단합니다.
K Raphael

1
동의, 이것은 더 간단하고 완벽하게 작동합니다!
loretoparisi

1

허용 된 답변이 제자리에 있지만 마지막 매개 변수 SUMIF가 항상 "유효 범위"여야하기 때문에 더 큰 누적 합계 계산 MMULT이 더 나은 옵션 이기 때문에 큰 단점 이 있습니다.

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

0

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.