2016-11-01 1 views
0

행에 4 개의 셀 A23 : E23의 값을 사용하고 해당 행의 특정 (H3) 셀에 다음 셀이 포함되어 있으면 해당 값을 다른 시트에 복제하는 스크립트를 작성했습니다. 텍스트 "Live".여러 범위에 걸쳐 IF 스크립트 실행

스크립트는 내가 쉽게 할 수있는 이해하는, 매일 실행해야하지만 그것은 또한 ReportData에IFD 변수, 값을 포함하는 행 (23) 아래의 모든 행 작업을 할 필요가 각각 작동합니다. 즉

var reportData = reportSheet.getRange("A24...A25...A26:E24...E25...E26").getValues(); 
var lastRow = recordsSheet.getLastRow(); 
var ifd = reportSheet.getRange("H24...H25...H25").getValue(); 
이 스크립트 뒤에 아이디어는 값이 지속적으로 업데이트 될 때 시트 1에있는 값의 일상 스냅 샷을 캡처하는 것입니다

하지만 누적 수치로. 이 누적 수치에 대한 일일 기록을 캡처해야합니다.

function appendToRecords() { 
var ss = SpreadsheetApp.getActiveSpreadsheet(); 
var reportSheet = ss.getSheetByName("Sheet1"); 
var recordsSheet = ss.getSheetByName("database") 
var reportData = reportSheet.getRange("A23:E23").getValues(); 

var lastRow = recordsSheet.getLastRow(); 
var ifd = reportSheet.getRange("H23").getValue(); 

    if (ifd == "Live"){ 
    recordsSheet.getRange("A2:E2") 
      .setValues(reportData); }} 

누구나이 방법을 제안 할 수 있습니까? https://docs.google.com/spreadsheets/d/1FMlj_9l7Sm0QMKcFpbC4iExbATgPL0jIWoVrvV_Vcfw/edit?usp=sharing

감사 :

다음은 스크립트가 작동하는 샘플 시트입니다!

답변

1

쉽게 다음과 같이 데이터베이스에 대한 모든 "라이브"행을 기록 할 수 있습니다 : 완벽하게 작동

function appendToRecords() { 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var reportSheet = ss.getSheetByName("Sheet1"); 
    var recordsSheet = ss.getSheetByName("database") 
    var reportData = reportSheet.getRange("A8:H").getValues(); 

    // Get only rows that are "Live" 
    // And only get the first five colums 
    var toWrite = reportData.filter(function(row) { 
    return row[7] === "Live"; 
    }).map(function(row) { 
    return row.splice(0, 5); 
    }); 

    if(!toWrite.length) {return;} // Return if nothing to write 

    recordsSheet 
     .getRange(recordsSheet.getLastRow() + 1, 1, 
       toWrite.length, toWrite[0].length) 
     .setValues(toWrite); 
} 
+0

감사합니다, 로빈. 날짜를 6 번째 열의 값으로 표시하는 방법을 제안 해 주시겠습니까? 'reportData [0] [6] = new Date();'를 추가하려고했습니다. 하지만이 코드를 어디에 두어야할지 내 머리를 터지게 할 수는 없습니다. – Bbrads

+0

함수의 시작 부분에'var today = new Date()'를 추가합니다. 그런 다음 이것을'row.splice (0, 5) .concat (today); '와 같이 추가 할 수 있습니다. –

+0

영웅입니다. 완벽하게 작동합니다! – Bbrads

관련 문제