커뮤니티
포인트
쿠폰
내 강의실
국비 신청 내역
증명서
계정
로그아웃
학습 질문
개발 일지
나의 활동
답변 완료
3주차 강의중 클릭한번으로 대시보드 만들기
ChatGPT 300% 활용하기 v0
3주차
북마크
권*준
댓글
1
추천
0
조회수
12
조회수
12
답변 완료

* 겪고 있는 문제 상황을 최대한 자세하게 작성해주세요.

* 문제 해결을 위해 어떤 시도를 해보았는지 구체적으로 함께 알려주세요.



저는 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) 단축키로 코드를 한 번에 선택할 수 있어요!




첨부파일 (1)

111.xlsx
(22.220K)
취소
 공유
취소
댓글 0
댓글 알림
나의얼굴