2017-03-05 8 views
0

모든 양식의 새로운 응답 항목이 있으면 그 줄이 다른 시트로 복사되기를 바랍니다. 그런 다음 행이 여러 데이터가있는 셀로 구성된 경우 이러한 셀은 샘플 시트와 같이 여러 행으로 나뉩니다. 마지막으로, 새 항목은 항상 마지막 비어 있지 않은 행 다음에 발생합니다.스플릿 스크립트 google 스프레드 시트 v2

가능합니까? 아직 정확하지 않은 경우 말해주십시오.

코디 얼.

File link

+0

나는 귀하의 게시물을 편집하고 "마지막 요청을하는 동안 내 새로운 질문의 위치가 정확하지 않았습니다."라는 문장을 삭제했습니다. 이는 문제가 무엇인지 이해하기 위해 필요하지 않은 개인 정보입니다. 또한 질문에 코드를 포함시켜야합니다. 스프레드 시트에 대한 링크는 훌륭하지만 외부 소스를 방문 할 필요없이 문제를 이해할 수있는 정보가 게시물에 있어야합니다. –

+0

비어 있지 않은 마지막 줄에 새 데이터를 넣으려면'sheet.appendRow()'메서드를 사용할 수 있습니다. 사용하기 쉽습니다. 시도 해봐. [appendRow()에 대한 Apps Script 설명서] (https://developers.google.com/apps-script/reference/spreadsheet/sheet#appendRow (Object)) –

답변

0

이 당신이 원하는 무엇을 당신이 가까이됩니다. 나는 retutned 데이터를 보유 시트 'Feuille 2'를 추가했습니다. 당신은 onFormSubmit 함수에서 이것을 실행할 수 있습니다.

function splitAll(){ 
var ss=SpreadsheetApp.getActiveSpreadsheet() 
var s=ss.getSheetByName("Réponses au formulaire 2") 
var lr=s.getLastRow() 
var range=s.getRange(2, 2, lr-1, 3).getValues() 
var output=[] 
var split=[] 

for(var i=0;i<range.length;i++){ 
    for(var j=0;j<range[0].length;j++){ 
    if(j==0){} 
    if(j==1){ 
    var split=range[i][j].split(", ") 
    if(split.length != 1) { 
     for(k=0;k<split.length;k++){ 
     output.push([range[i][0],split[k],""]);} 
    }else{ 
     output.push([range[i][0],range[i][j],""]); 
    }} 
     if(j==2 && range[i][2] !=""){ 
    var split=range[i][j].split(", ") 
    if(split.length != 1) { 
     for(k=0;k<split.length;k++){ 
     output.push([range[i][0],"",split[k]]);} 
    }else{ 
     output.push([range[i][0],"",range[i][j]]); 
    }} 
    }} 
ss.getSheetByName("Feuille 2").getRange(2, 1, output.length, output[0].length).setValues(output) 
} 
+0

@Ed Nelson에게이 코드를 보내 주심에 감사드립니다. 열이 비어 있거나 열이 추가 될 때를 제외하고 작동합니다. 내가 이해할 수없는. 예를 들어 getRange (2,2, lr-1, 5)의 열 번호를 변경했지만 아무 일도 발생하지 않습니다. 내가 설명 좀 해줄 까? 코디 얼. – william

+0

열이 추가 된 스프레드 시트와 내가 변경 한 것에 대한 설명을 공유하고 있습니다. 코드 이해에 도움이되기를 바랍니다. https://docs.google.com/spreadsheets/d/1MjKctjb9fuMyGuMD7uaX47R05vSEzGjmdzRfJn5VrDY/edit?usp=sharing –

+0

안녕하세요 @Ed 넬슨, 난 그냥 코드를보고 실제로 코드가 작동합니다 :) 는 그러나, 나는 구문에 대한 질문이 있습니다. 이 두 구문의 차이점은 무엇입니까? 행 35 : output.push ([range [i] [0], split [k], "", ""]); 및 43 행 : output.push ([range [i] [0], "", split [k], ""]); ""의 위치에 대해 이야기합니다. 코디 알리. – william

관련 문제