
* 겪고 있는 문제 상황을 최대한 자세하게 작성해주세요.
* 문제 해결을 위해 어떤 시도를 해보았는지 구체적으로 함께 알려주세요.
저는 GPT유료버전 사용자입니다.
강의 중 대시보드 프롬프트를 붙여서 GPT에게 코드를 받은후 구글 apps script에 복사해서 붙여넣기 했는데 자꾸 첨부의 결과물이 나옵니다.
다시 한번 코드를 받았지만 여전히 결과가 동일하네요.
작성한 코드 및 에러 메세지
function createDashboard() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('시트1'); // '시트1' 시트 불러오기
var dashboardSheet = ss.getSheetByName('대시보드');
// 기존 대시보드 시트 삭제 후 새로 생성
if (dashboardSheet) {
ss.deleteSheet(dashboardSheet);
}
dashboardSheet = ss.insertSheet('대시보드');
// 1. 제품명별 매출
var productRange = sheet.getRange(2, 6, sheet.getLastRow() - 1, 2).getValues(); // 제품명과 매출 데이터 가져오기 (6열이 제품명, 7열이 매출)
var productSales = {};
productRange.forEach(function(row) {
var product = row[0]; // 제품명
var sales = row[1]; // 매출
if (product in productSales) {
productSales[product] += sales;
} else {
productSales[product] = sales;
}
});
// 제품명별 매출 기록
var productRow = 1;
dashboardSheet.getRange(productRow, 1).setValue('제품명별 매출');
for (var product in productSales) {
productRow++;
dashboardSheet.getRange(productRow, 1).setValue(product);
dashboardSheet.getRange(productRow, 2).setValue(productSales[product]);
}
// 2. 도시별 매출
var cityRange = sheet.getRange(2, 4, sheet.getLastRow() - 1, 2).getValues(); // 주소와 매출 데이터 가져오기 (4열이 주소, 7열이 매출)
var citySales = {};
cityRange.forEach(function(row) {
var city = row[0].split(' ')[0]; // 도시 이름 추출 (주소에서 첫 번째 단어가 도시)
var sales = row[1]; // 매출
if (city in citySales) {
citySales[city] += sales;
} else {
citySales[city] = sales;
}
});
// 도시별 매출 기록
var cityRow = productRow + 2;
dashboardSheet.getRange(cityRow, 1).setValue('도시별 매출');
for (var city in citySales) {
cityRow++;
dashboardSheet.getRange(cityRow, 1).setValue(city);
dashboardSheet.getRange(cityRow, 2).setValue(citySales[city]);
}
// 3. 고객분류별 카테고리별 매출
var customerCategoryRange = sheet.getRange(2, 2, sheet.getLastRow() - 1, 5).getValues(); // 고객분류, 카테고리, 매출 데이터 가져오기 (2열 고객분류, 5열 카테고리, 7열 매출)
var customerCategorySales = {};
customerCategoryRange.forEach(function(row) {
var customerCategory = row[0]; // 고객분류
var category = row[3]; // 카테고리
var sales = row[4]; // 매출
var key = customerCategory + ' - ' + category;
if (key in customerCategorySales) {
customerCategorySales[key] += sales;
} else {
customerCategorySales[key] = sales;
}
});
// 고객분류별 카테고리별 매출 기록
var customerRow = cityRow + 2;
dashboardSheet.getRange(customerRow, 1).setValue('고객분류별 카테고리별 매출');
for (var key in customerCategorySales) {
customerRow++;
dashboardSheet.getRange(customerRow, 1).setValue(key);
dashboardSheet.getRange(customerRow, 2).setValue(customerCategorySales[key]);
}
// 완료 메시지 출력
SpreadsheetApp.getUi().alert('대시보드가 성공적으로 생성되었습니다!');
}
오류 발생 시, 작성한 코드 전체와 에러 메시지를 첨부해 주세요.
Tip 1) </> 아이콘을 눌러 코드박스를 만들어 보세요.
Tip 2) Ctrl+A(맥의 경우 Command+A) 단축키로 코드를 한 번에 선택할 수 있어요!
