목차
구글 스프레드시트로 데이터를 가공하게 되면, 숫자라는 데이터 타입은 유지하면서 보여지는 서식을 변경해야 하는 경우가 많습니다.
한두개면 금방 하겠으나.. 너무 많을 때는 이 코드를 활용해보면 도움이 됩니다.
예시 데이터 소개
한 화면에 보여드리려다보니 작게 편집했는데, 한 스프레드시트 안에 세개의 시트로 구성되어 있습니다.
각 시트의 이름은 일 단위 데이터, 월 단위 데이터, 연 단위 데이터입니다.
데이터들을 보시면 시트의 이름은 다르지만 그 안에 들어있는 데이터는 다 똑같은 상황입니다.
날짜는 일, 월, 연 단위로 바꾸고 매출과 순이익은 원 표시를 유니크 고객수에는 명을 붙이고 싶습니다.
시트 옮겨가며 숫자 서식 한번에 변경하는 앱 스크립트 코드
function myFunction() {
const sheetNames = ['일 단위 데이터', '월 단위 데이터', '연 단위 데이터'];
// 활성 스프레드시트 가져오기
const spreadsheet1 = SpreadsheetApp.getActiveSpreadsheet();
// 각 시트에 대해 포맷 설정 적용
sheetNames.forEach(function(sheetName) {
const sheet = spreadsheet1.getSheetByName(sheetName);
if (sheet) {
if (sheetName === '일 단위 데이터'){
sheet.getRange('A:A').setNumberFormat('yy. M. d(ddd)');
}
if (sheetName === '월 단위 데이터'){
sheet.getRange('A:A').setNumberFormat('y년 M월');
}
if (sheetName === '연 단위 데이터'){
sheet.getRange('A:A').setNumberFormat('Y년');
}
sheet.getRange('B:C').setNumberFormat('₩#,###0');
sheet.getRange('D:D').setNumberFormat('#,##0명');
} else {
Logger.log('Sheet not found: ' + sheetName);
}
});
}
결과
위 코드를 실행하고 나면 아래와 같은 결과가 나옵니다. 결과물 도출에 1초 걸렸습니다.
이런 자동화는 데이터가 많으면 많을수록 더 가치가 드러납니다.
일 단위 데이터 시트에는 날짜를 년.월.일(요일)과 같이 표기했고
월 단위 데이터 시트에는 날짜를 ㅇㅇ년 ㅇ월과 같이 표기했습니다.
코드 활용
시트 이름을 바꾸고 싶다면,
const sheetNames = ['일 단위 데이터', '월 단위 데이터', '연 단위 데이터']; 이 부분에 시트 이름을 넣어주면 됩니다.
만약에 시트를 그냥 전부 다 넣고 싶다면, const sheetNames = spreadsheet1.getSheets(); 이런 식으로 바꿔서 사용하면 됩니다.
숫자 서식은 setNumberFormat를 사용해 변경하는데 다양한 포맷은 워낙 많다보니.. 그때그때 필요할 때, 인터넷에서 찾아보시길 추천드립니다.
예시로 사용한 템플릿을 써보고 싶다면 아래 링크 눌러서 사본 복사하시면 됩니다.
https://docs.google.com/spreadsheets/d/1A4TYWcmqm-97A-RdAqVffy4ylq_L30CTp8YOq_j28OA/copy
이런 화면이 나올텐데 바로 사본 만들기 누르시면 됩니다. 아니면 Apps Script 파일 보기 눌러서 어떤 내용인지 확인해보셔도 됩니다.
댓글