안녕하세요?
언제파나온입니다.
개발자는 아니고 실무에 적용해서 편하게 업무할려고 잠시 연구중입니다.
딱히 물어볼 사람도 없고 해서 chat GPT랑 씨름중인데 몇번을 해도 안되서 당원은 아니지만 용기내서 질문 드립니다.
혹시 문제되면 삭제하겠습니다.
구현하고 싶은것은 ,
구글시트에 우편번호를 입력하면 옆의 셀에 자동으로 주소가 입력되는것을 만들고 싶습니다.
(일별로 주문하는 고객의 주소를 입력해야 하므로 한개의 구글시트에서 시트가 하루에 한개씩 추가 되는 상황입니다)
제가 생각했던것은
구글시트에 우편번호와 주소 리스트를 사전에 다운받아 데이터만 있는 구글 시트를 만들어두었고, 그 구글시트의 A열에는 우편번호가 있고, B열에 주소가 있습니다.
(우편번호는 124,366개 있습니다.)
그리고 우편번호를 입력하고자 하는 구글시트는 이렇습니다.
I열이 우편번호, J열이 자동으로 입력되어야 하는 주소란입니다.
chat GPT가 가르쳐준 코드는(질문 방법을 여러번 바꿔서 여러 코드를 받아 테스트 했는데 전부 실패를 하고 최근에 다시 받은 코드입니다)
function onEdit(event) {
var editedSheet = event.source.getSheetByName("이름이 다른 시트의 이름"); // 두 번째 스프레드시트의 시트 이름을 여기에 입력합니다.
var editedRange = event.range;
var editedValue = event.value;
var targetSheet = SpreadsheetApp.openByUrl("https://docs.google.com/spreadsheets/d/1TZN99ihoQ9DB-ybadlfqddfsfsdffhguiyturfuuyk/egid=1113282289").getSheetByName("시트1"); // 첫 번째 스프레드시트의 URL과 시트 이름을 여기에 입력합니다.
var dataRange = targetSheet.getRange("A:B"); // 첫 번째 스프레드시트의 A열과 B열 범위를 가져옵니다.
var dataValues = dataRange.getValues(); // 범위의 모든 값 가져오기
var targetRow;
for (var i = 0; i < dataValues.length; i++) {
if (dataValues[i][0] == editedValue) { // 첫 번째 스프레드시트의 A열 값이 두 번째 스프레드시트의 I열 값과 일치하는지 확인합니다.
targetRow = i + 1;
break;
}
}
if (targetRow) {
var targetValue = dataValues[targetRow - 1][1]; // 첫 번째 스프레드시트의 B열 값 가져오기
editedSheet.getRange("J" + editedRange.getRow()).setValue(targetValue); // 두 번째 스프레드시트의 J열에 값을 설정합니다.
}
}
(구글시트의 주소는 일부 수정했습니다 - 혹시 모를 보안때문에…)
이 코드를 구글시트의 APPS SCRIT에 입력하고 onEdit로 하여 저장하고(이미지 참조) , I열에 우편번호를 입력을 해도 J열에 주소가 자동 입력이 안됩니다.
혹시 어디가 잘못 되었는지? 아니면 설정이 잘못되었는지 아시는 분 가르쳐 주시면 너무 감사하겠습니다!
sample 입니다.
https://docs.google.com/spreadsheets/d/1MV8FEvhwLis9IfhyLX6TdC6LjdyEurZxn-R04t5q6ik/edit#gid=0
차라리 api사용하시는게 편하실 것 같습니다.
감사합니다!