ArrayFormula 내에서 각 행에 대해 마지막 7 개 행의 합계를 계산하는 방법은 무엇입니까?

Eduard

숫자 값이있는 열 D가 있고 인접한 열에 현재 행을 기준으로 마지막 7 개 행의 합계를 표시하고 싶습니다.

나는 몇 가지 변형을 시도했는데 대부분은 StackOverflow 및 다른 사이트에서 영감을 얻었지만 필요에 따라 작동하지 않았습니다.

Offset ()이 범위를 생성하기 때문에 필요한 범위를 "분할"하고 sum ()에 공급하는 것이 간단 할 것이라고 생각했습니다.

ArrayFormula( Sum(Offset(D7:D500,-6,1,7,1)) )

그러나이 수식을 넣은 셀만 계산하는 것 같습니다.

온라인에서 찾은 잠재적 솔루션을 내 상황에 맞게 조정했습니다.

ArrayFormula(SUMIF(ROW(D7:D500),"<="&ROW(D7:D500),D7:D500))

이것은 이전의 모든 행에 대한 합계를 계산하므로 SUMIFS ()를 사용하면 필요한 것을 얻을 수 있다고 생각했습니다.

=ArrayFormula(SUMIFS(D7:D500, ROW(D7:D500),"<="&ROW(D7:D500), ROW(D7:D500),">"&ROW(D7:D500)-7))

그러나 이것은 작동하지 않습니다. 또한 Address () 및 Interpret ()로 범위를 만들려고 시도했지만 ArrayFormula () 내에서 제대로 작동하지 않는 것 같습니다.

나는 그것에 대해 상당히 새롭기 때문에 제대로 사용하지 않을 수도 있습니다. 내가 여기서 뭘 잘못하고 있니? 이 작업을 수행하는 더 좋은 방법이 있습니까? 수식이 단일 셀에 있기 때문에 가능하면 ArrayFormula ()를 사용하는 것이 좋습니다.

Iamblichus

Google Apps Script에서 만든 맞춤 함수 를 통해이 작업을 수행 할 수 있습니다 . 이를 위해 다음 단계를 따르십시오.

  • 스프레드 시트에서 도구> 스크립트 편집기선택 하여 파일에 바인딩 된 스크립트를 엽니 다.
  • 스크립트 편집기에서이 함수를 복사하고 프로젝트를 저장합니다.
function SUM7ROWS(input) {
  var output = [];
  var sum;
  for (var row = 0; row < input.length; row++) {
    sum = 0;
    for (var i = 6; i >= 0; i--) {
      if (row - i >= 0) {
        sum = sum + Number(input[row - i]);
      }
    }
    output.push(sum);
  }
  return output;
}
  • 이제 스프레드 시트로 돌아 가면 다른 함수와 마찬가지로이 함수를 사용할 수 있습니다. D7:D500여기에서 볼 수 있듯이 적절한 범위를 매개 변수 (이 경우 )로 제공하면됩니다.

여기에 이미지 설명 입력

도움이 되었기를 바랍니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관