반응형
아래와 같은 시트가 있다.
location(B 컬럼) 별로 새로운 시트를 만들어 나누고 싶다.
1. location 의 중복을 제거한다.
function seperateSheet () {
const ss = SpreadsheetApp.getActive();
const sheet = ss.getSheetByName("locations");
// 중복제거
const keys = sheet.getRange(1, 2, sheet.getLastRow()-1, 1).getValues();
let dupArr = new Array();
for ( i in keys ) {
dupArr.push(keys[i][0]);
}
let uniqueKeys = [...new Set(dupArr)];
console.log(uniqueKeys);
}
2. 중복 제거 된 데이터를 통해 location 별 데이터를 추출한다.
function seperateSheet () {
const ss = SpreadsheetApp.getActive();
const sheet = ss.getSheetByName("locations");
// 중복제거
const keys = sheet.getRange(1, 2, sheet.getLastRow()-1, 1).getValues();
let dupArr = new Array();
for ( i in keys ) {
dupArr.push(keys[i][0]);
}
let uniqueKeys = [...new Set(dupArr)];
// 전체 데이터 추출
const values = sheet.getRange(1, 1, sheet.getLastRow()-1, sheet.getLastColumn()).getValues();
// key 값 별로 데이터 분리
for ( j in uniqueKeys ) {
var locationData = values.filter(function(item) { return item[1]=== uniqueKeys[j]; });
console.log(locationData);
}
}
3. 나눈 데이터를 새로운 시트로 생성한다.
function seperateSheet () {
const ss = SpreadsheetApp.getActive();
const sheet = ss.getSheetByName("locations");
// 중복제거
const keys = sheet.getRange(1, 2, sheet.getLastRow()-1, 1).getValues();
let dupArr = new Array();
for ( i in keys ) {
dupArr.push(keys[i][0]);
}
let uniqueKeys = [...new Set(dupArr)];
// 전체 데이터 추출
const values = sheet.getRange(1, 1, sheet.getLastRow()-1, sheet.getLastColumn()).getValues();
// key 값 별로 데이터 분리
for ( j in uniqueKeys ) {
var locationData = values.filter(function(item) { return item[1]=== uniqueKeys[j]; });
var newSheet = ss.insertSheet(uniqueKeys[j]);
newSheet.getRange(1,1,locationData.length, locationData[0].length).setValues(locationData);
console.log(`${uniqueKeys[j]} 시트 생성완료`);
}
}
실행로그
생성된 탭들 확인
실제 생성 시트
반응형
'GCP > Apps Script' 카테고리의 다른 글
Apps Script와 Google Sites를 이용한 홈페이지 제작 및 배포 (0) | 2023.05.25 |
---|---|
Apps Script로 Google Sheets의 비밀번호 설정하기 (1) | 2023.05.23 |
Apps Script로 Google Sheets 기반의 상품 관리 시스템 만들기 (0) | 2023.05.17 |
Apps Script로 Google 서비스 기반의 간단한 예약 시스템 만들기 (2) | 2023.04.27 |
Apps Script로 Google Sheets의 Banding을 이용해 표 꾸미기 (0) | 2023.04.25 |