0

이 글은 약간 기본적이고 대답하기 쉽지만 지금 당분간 머리카락을 꺼내 ​​왔습니다!Google 문서 도구 - 스프레드 시트 루프

나는 다음과 같은 코드를 만들었습니다. 이것은 작동하도록 올바른 방법을 찾을 수 없기 때문에 준 의사입니다!

var s = "Test"; 

function onEdit(event) 
{ 
    var ss = event.source.getActiveSheet(); 
    var r = event.source.getActiveRange(); 
    if (ss.getName() == s) 
    { 
    results = {"Currently On": 0, "Next Up": 0, "On Hold": 0, "Waiting on someone else":  0, "zDone": 0}; 
    last = ss.getMaxRows(); 
    start = ss.getRange("F3:"+last).getValues(); 
    var output = "J11"; 
    for (x=0;x<start.length;x++) 
    { 
    results[start[x]]++; 
    } 

    for (y=0;y<results.length;y++) 
    { 
     row = ss.getRow(output); 
     row.value = results[y]; 
     output++; 
    } 
    } 
} 

나는 data example

기본적인 아이디어는 각 작업의 가능한 모든 카테고리를 실행하고 얼마나 많은 측면에 숫자 목록을 유지하는 것입니다이 이미지의 데이터의 예를 가지고 각각은 거기에있다. 또한 동적으로 만들려고합니다 (카테고리 목록에 하드 코드를 넣을 필요가 없습니다). 그러나 나는 그 코드를 잠시 동안 작동시키는 데 더 관심이 있습니다.

Google Apps 디버거는 매우 실망 스럽습니다.

모두에게 감사드립니다.

=QUERY(A2:F;"select F, count(A) where F != '' group by F label count(A) 'Count'";1) 

을하지만 가스와 함께이 작업을 수행 할 이유가있을 수 있습니다 :

답변

1

첫째,이 특정 유스 케이스는 예를 들어, 스프레드 시트 식에 쉽게 달성 될 것이다.

last = ss.getMaxRows(); 

난 그냥 여기 var last = ss.getLastRow()을 사용 : 일부 구문 문제가있을 수 있습니다 생각하는 경우

그래서 둘째로,이입니다.

start = ss.getRange("F3:"+last).getValues(); 

범위 참조는 "F3 : 100"처럼 뭔가로 평가 것, GSheets (가스를 처리 할 수 ​​있는지 여부를 모르는)에서 유효한 참조이지만, 그럼에도 불구하고 당신은 정말 "F3 뭔가를 원하는 : F100 "이므로 var start = ss.getRange("F3:F"+last).getValues();을 사용합니다.

results[start[x]]++; 

당신이 getValues()에서 배열을 만들

results[start[x][0]]++;을 사용해야합니다 그래서, 2 차원 배열입니다 호출합니다.

다음 루프와 output 변수로, 나는 당신이 그곳에서하고있는 일과 함께 조금 길다는 것을 인정해야합니다. 어떻게 결과 테이블을 배치하고 싶습니까?

1

당신은

output = "J11"; 

을 그리고 당신이

ss.getRow(output); 
output++; 

이 모든 invalid.First 인을, SS는 getRow 방법이하지 않은 아래 시트입니다. 따라서 실제로해야 할 일은 다음과 같습니다.

var row = 11 ; 
var col = 10 ; //Col J 
for (y=0;y<results.length;y++) 
{ 
    ss.getRange(row,col,1,1).setValue(results[y]); 
    row++: 
} 
0

AdamL과 마찬가지로 스프레드 시트의 기본 기능에서 처리하는 것이 좋습니다. 동적으로 업데이트되는 피벗 테이블을 원한다고 생각합니다. 또는 = countif (F : F, "Currently On")와 같은 공식은 즉각적인 요청을 처리합니다. = Unique (F : F)는 배열의 범주 목록을 제공합니다

관련 문제