· 톺아보기

질문

구글시트에서 우편번호로 주소 자동입력하는 코드

언제파나온 ·

조회 4,401 · 공감 0 · 댓글 4

안녕하세요?

언제파나온입니다.

개발자는 아니고 실무에 적용해서 편하게 업무할려고 잠시 연구중입니다.

딱히 물어볼 사람도 없고 해서 chat GPT랑 씨름중인데 몇번을 해도 안되서 당원은 아니지만 용기내서 질문 드립니다.

혹시 문제되면 삭제하겠습니다.


구현하고 싶은것은 ,

구글시트에 우편번호를 입력하면 옆의 셀에 자동으로 주소가 입력되는것을 만들고 싶습니다.

(일별로 주문하는 고객의 주소를 입력해야 하므로 한개의 구글시트에서 시트가 하루에 한개씩 추가 되는 상황입니다)


제가 생각했던것은  

구글시트에 우편번호와 주소 리스트를 사전에 다운받아 데이터만 있는 구글 시트를 만들어두었고, 그 구글시트의  A열에는 우편번호가 있고, B열에 주소가 있습니다.

(우편번호는 124,366개 있습니다.)



우편번호 데이터.png


그리고  우편번호를 입력하고자 하는 구글시트는 이렇습니다.

I열이 우편번호, J열이 자동으로 입력되어야 하는 주소란입니다.


입력시트.png

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열에 주소가 자동 입력이 안됩니다.

코드적용.png

혹시 어디가 잘못 되었는지? 아니면 설정이 잘못되었는지 아시는 분 가르쳐 주시면 너무 감사하겠습니다!


댓글 4

  1. 언제파나온 ·
    @dkmaster님 감사합니다! 간단하게 할 수 있는건데 chat GPT랑 이틀동안 씨름했네요 ㅠㅠ. 구글시트에 잘 적용했습니다. 다시 한번 감사드립니다!! 즐거운 연휴 되세요!
  2. helloworld ·
    일본 우편번호 정보는 한달에 한번 갱신됩니다. 물론 일부 추가및 삭제, 변경등이 있어서죠.
    차라리 api사용하시는게 편하실 것 같습니다.
  3. 언제파나온 ·
    @helloworld님 API이용도 잠시 생각하다가 구글시트의 파일이용이 업무 적용에 빠르지 않나...하고 판단해서 구글시트를 이용했는데 API이용도 시간날때 도전해 보겠습니다!
    감사합니다!

개발한당 최근 글

개발한당 목록 더 보기