안녕하세요..
취미로 구글 스프레드시트 앱스 스크립트롤 공부하고 있습니다.
정말 초보이고 유투브로 하나씩 보면서 익히고 있는 중입니다.
간단한 일기를 쓸 수 있는 양식을 한번 만들어 보고 있는데요.
양식 시트와 데이터 시트를 구분하여 매크로 버튼을 활용하여 데이터를 입력 및 출력을 해보려고 하는데...
양식 시트에 제가 입력한 원하는 날짜로 데이터 시트에서 정보를 불러오고 싶은데 어떻게 수정을 해야할지 막막합니다.
스샷과 스크립트를 첨부하니 고수 분들의 아낌없는 조언 구걸 합니다...ㅜㅜ

Form1(양식)시트와 Data 시트로 나뉘어져 있습니다.
Data 시트에는 Form1시트 데이터가 저장 됩니다.

앱스 스크립트 코드는 다음과 같습니다.
// Save Data
function submitData() {
var SPREADSHEET_NAME = "Data";
var SEARCH_COL_IDX = 0;
var RETURN_COL_IDX = 0;
var ss = SpreadsheetApp.getActiveSpreadsheet();
var formSS = ss.getSheetByName("Form1"); //Form Sheet
var datasheet = ss.getSheetByName("Data"); //Data Sheet
var str = formSS.getRange("C8").getValue();
var values = ss.getSheetByName(SPREADSHEET_NAME).getDataRange().getValues();
for (var i = 0; i < values.length; i++) {
var row = values[i];
if (row[SEARCH_COL_IDX] != str) {
//SpreadsheetApp.getUi().alert(' "Emp #' + formSS.getRange("C8").getValue() + ' "');
// return row[RETURN_COL_IDX];
//} else {
//Input Values
var values1 = [[formSS.getRange("C8").getValue(),
formSS.getRange("C10").getValue(),
formSS.getRange("C12").getValue(),
formSS.getRange("C14").getValue()]];
// Save New Data
datasheet.getRange(datasheet.getLastRow()+1, 1, 1, 4).setValues(values1);
SpreadsheetApp.getUi().alert(' "New Data Saved - Emp #' + formSS.getRange("C8").getValue() +' "');
formSS.getRange("C8").clear();
formSS.getRange("C10").clear();
formSS.getRange("C12").clear();
formSS.getRange("C14").clear();
return row[RETURN_COL_IDX];
}
}
}
//=========================================================
// Clear form
function clearCell() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var formSS = ss.getSheetByName("Form1"); //Form Sheet
formSS.getRange("C8").clear();
formSS.getRange("C10").clear();
formSS.getRange("C12").clear();
formSS.getRange("C14").clear();
return true ;
}
//=====================================================================
var SEARCH_COL_IDX = 0;
var RETURN_COL_IDX = 0;
function searchStr() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var formSS = ss.getSheetByName("Form1"); //Form Sheet
var str = formSS.getRange("D4").getValue();
var values = ss.getSheetByName("Data").getDataRange().getValues();
for (var i = 0; i < values.length; i++) {
var row = values[i];
if (row[SEARCH_COL_IDX] == str) {
formSS.getRange("C8").setValue(row[0]) ;
formSS.getRange("C10").setValue(row[1]);
formSS.getRange("C12").setValue(row[2]);
formSS.getRange("C14").setValue(row[3]);
return row[RETURN_COL_IDX];
}
}
}
현재까지는 데이터 입력과 삭제 그리고 데이터를 불러오는 것 까지 이해하면서 작성을 했는데요(배꼈는데요...;;)
D4셀을 다른걸로 했을 때는 잘 불러오는데 날짜로 했을 때는 정보를 불러오지 못하더라구요...
저 수식을 어떻게 수정 해야 날짜를 불러올 수 있을까요?
D4에 데이터타입(포멧)이 날짜객체여서 저장이 안되고 있는 것으로 예상됩니다.
그래서 만약 우유가좋아님이 지금 계획하신대로 "2021년 4월 26일" 형태로만 저장하는걸 원하신다면
var str = formSS.getRange("D4").getDisplayValue();
getDisplayValue 메서드로 값을 가져오시면 됩니다.
---
그런데 만약 스프레드시트를 데이터베이스로 사용하시고 싶으시다면 일반적으로는 .getValue() 값에서 날짜형식 문자열로 변환해서 저장하는데 이부분은 나중에 한번 검토해보시면 될 것 같습니다.