1

내 Google 시트의 셀에서 다음과 같은 함수를 호출합니다. myFunction(A1:A3), 여기서 A1 = 5, A2 = 7 및 A3 = 3입니다. 이제 입력을 반복하려고합니다 A1, A2 및 A3)를 계산하고 (예를 들어) 합산합니다.Google 애플 리케이션 스크립트에서 기능을 수행 할 범위 입력

function myFunction(input) { 

if (!input.map) {  
return -1; 
} 

var sum=0 
for(var i=0; i<input.length; i++){ 
    sum = sum + parseInt(input[i]); 
} 

return sum 

} 

그러나 그것은 단지 A1의 값 I가 parseInt(input[i])을 제거하는 경우 (5) input.length 반환 1.이 반환 때문에를 반환 "05,7,3" 내가 뭘 잘못입니까?

+0

코드가 작동합니다. 사용할 이유가 있습니까? '= SUM (A1 : A3)'위의 커스텀 함수? –

답변

2

사용자 정의 함수 인수가 자바 스크립트로 변환 2 차원 배열의 합을 수행 할 첫 번째 내부에 다른 루프를 수행 늘 : (A5 A1) 만 평방/수평 범위에 코드는 수직 범위 예를 들면 작동 객체 유형. 매개 변수가 다중 셀 범위 인 경우 배열은 배열 객체, 즉 2D 배열로 변환됩니다.

각 셀 값을 얻으려면 input[i] 대신 input[i][j]을 사용하십시오.

예 :

/** 
* @customfunction 
*/ 
function mySum(input) { 
    if (!input.map) return -1; 
    var sum = 0; 
    for(var i = 0; i < input.length; i++){ 
    for(var j = 0; j < input[0].length; j++){ 
     sum = sum + parseInt(input[i][j]); 
    } 
    } 
    return sum 
} 

참고 : 0.

참조

  • Custom Functions in Google Sheets
  • 하여 공백을 대체처럼 상기 함수는 어떤 규칙/입력 데이터의 유효성을 추가함으로써 개선 될 수있다
+0

감사합니다. 작동합니다. – lijas

0

거기에 기능이 내장되어 있지만 스크립트 및 코드 작성 방법을 배우고 싶다면 위대합니다! 단지

for(var i=0; i<input.length; i++){ 
    for(var j=0; j<input[0].length; j++){ 
     sum = sum + parseInt(input[i][j]); 
    } 
}