여러 시트를 마스터 스프레드 시트에 동기화하는 방법을 찾는 데 어려움을 겪고 있습니다. 테스트를 위해 5 개 도시에 주소가있는 스프레드 시트가 있습니다. 각 도시에 대한 스프레드 시트를 작성하고 어느 시트에서든지 변경 될 때마다 데이터를 동기화하려고합니다. 전체 데이터를 관리하고 5 개의 스프레드 시트 각각을 다른 사람들에게 할당합니다. 그렇게하면 모든 데이터에 대한 액세스 권한이없는 시트를 업데이트 할 수 있습니다. 기본 쿼리 또는 가져 오기 기능을 사용할 때의 문제점은 사용자가 '도시'스프레드 시트를 변경하면 데이터가 참조되므로 시트가 손상된다는 것입니다.여러 Google 스프레드 시트 (5+)를 마스터 google 스프레드 시트로 다시 동기화
검색을 수행 한 후 아래에서 'Dev'코드를 발견했습니다.
var sourceSpreadsheetID = "ID HERE";
var sourceWorksheetName = "SHEET NAME HERE";
var destinationSpreadsheetID = "ID HERE";
var destinationWorksheetName = "SHEET NAME HERE";
function importData() {
var thisSpreadsheet = SpreadsheetApp.openById(sourceSpreadsheetID);
var thisWorksheet = thisSpreadsheet.getSheetByName(sourceWorksheetName);
var thisData = thisWorksheet.getDataRange();
var toSpreadsheet = SpreadsheetApp.openById(destinationSpreadsheetID);
var toWorksheet = toSpreadsheet.getSheetByName(destinationWorksheetName);
var toRange = toWorksheet.getRange(1, 1, thisData.getNumRows(), thisData.getNumColumns())
toRange.setValues(thisData.getValues());
}
이 좋은 작품 때문에 복사 나 편집 할 수 이상의 데이터,하지만 문제는 내가 원하는 데이터 만 가져올 수 있습니다. 내가 SQL 쿼리를 사용할 수 있다면, ID는 예를 들어. * city = 'miami'를 선택하십시오. 그러나 지금은 Google 스프레드 시트로는 불가능합니다.
그래서 다음 스크립트는이 스크립트를 사용하고 하위 스프레드 시트에 필터를 설정하는 것입니다. 문제는 스크립트를 실행할 때 전체 시트를 다시 복사하고 5 명의 사용자 중 한 명이 동시에 자신의 스프레드 시트를 업데이트하는 경우 변경 사항을 덮어 쓸 때 문제가 발생할 수 있다는 것입니다. 내가 가진 각 생각은 각 레코드가 고유 한 ID를 가지고 있기 때문에 (id라는 열이 있음) 활성 스프레드 시트에서 idas = masterspreadsheet.id를 편집하는 마스터 시트의 행을 업데이트하는 방법을 알 수 있습니까?
올바른 방향으로 어떤 도움을 주시면 대단히 감사하겠습니다.
당신은 실제로 구글 스프레드 시트에서 쿼리를 사용할 수 있지만,이 데이터로 항상 업데이트됩니다 동적 될 것입니다 : https://support.google.com/docs/answer/3093343?hl= en. 이게 문제를 해결할 수 있습니까? – Kriggs
별도의 스프레드 시트에서 데이터를 가져 오는 중이므로 쿼리 기능을 단독으로 사용할 수 없습니다. 나는 데이터를 참조하는 importrange를해야한다. 불행히도, 이것은 나를 위해 작동하지 않습니다. – User125