· 톺아보기

PC/모바일

구글스프레드시트 업데이트 시간 자동 표기하기

carg · · 수정

조회 24,135 · 공감 4 · 댓글 13

<요약>

1. 확장프로그램 - 스크립트를 열어

2. 기존내용대신 아래 코드를 붙여넣으면 끝

function onEdit(e) {
var ss = SpreadsheetApp.getActiveSheet();
var currentCell = ss.getActiveCell();


if( currentCell.getColumn() == 9 ) {
var nextCell = currentCell.offset(0, 1);
var newDate = Utilities.formatDate(new Date(),"GMT+09:00", "yyyy/MM/dd hh:mm:ss");
nextCell.setValue(newDate);
}
}


<결과> 

아래 사진과 같이 I열에 업데이트 이력을 적을 때 마다 J열에 업데이트 시간이 자동으로 기입됩니다. 

???.png

<한계>
i열에 하나씩 적을땐 문제가 없는데 다른 엑셀이나 다른 열에 있는 내용을 한번에 복사해서 i2부터 i10까지 일괄 붙여넣기 해버리면

j2셀에만 업데이트 되는 한계가 있으니, 하나하나 업데이트 용으로만 쓰시기 바랍니다~ 


<상세 설명>


1. 확장프로그램 - 스크립트를 열어줍니다.


1 ????.png

2. 기존에 적혀 있는 내용을 지우고 위에 적어드린 코드를 복사해서 덮어쓰기 하면 됩니다. 


<처음 해보시는 분들 해당>

3. 위의 스크립트를 저장하고 재생 버튼을 눌러보면 보안 경고가 나옵니다. 

모두 허용해주셔야 합니다

처음 한번만 허용해주시면 그 다음부터 문제없이 사용됩니다. 

아래 사진은 순서대로 캡처한 것이며

권한검토 -> 고급 -> 허용 단계로 해주시면 됩니다. 



??.png


댓글 13

  1. 아저기요 ·
    구글 스프레드가 저 기능이 좀 빈약해서 여러셀을 동시에 수정하면 저기능이 안먹히죠 ㅋㅋ
  2. carg ·
    @아저기요님 그런가요? 저는 잘 모르겠던데요...

    업무용으로 여러 구성원들이 동시에 접속해서 수정할때 누가 언제 수정했는지 확인하기 위해서

    1. 버전기록
    2. 마우스 우측버튼 눌러 "수정기록표시"
    로 확인하는게 너무 번거로워서
    3. 컨트롤 ;과 컨트롤 : 으로 현재 날짜, 현재 시간 입력하라고 칸을 만들어줘도 잘 입력을 안하거나, 수정을 안해서
    스크립트로 수정시간자동으로 찍히게 했더니 큰 문제 없이 잘 되고 있더라고요

    다만, 수정할때 마다 초단위로 시간이 수정되고, 한번 생긴 이후로는 자세히 안봐서 제가 인지를 못했을지 모르겠네요
  3. 아저기요 ·
    @carg님 아뇨 제말은 I2:I4 까지 일괄수정하면 저기능이 안먹힌다는 뜻이었어요
  4. carg ·
    @아저기요님
    아하~ 그렇게 쓸일이 없어서 몰랐습니다.
    말씀하신대로 여러셀을 복사해서 i2:i4까지 붙여넣기 해버리면 첫번째 셀만 먹히네요
    본문에 반영해야겠습니다^^
  5. 자나자나 ·
    좋은 정보 감사합니다.^^ 사실 스크립트를 쓸 수 있다는것도 처음 알았습니다..^^;;
  6. carg · · 공감 1
    @자나자나님 네 저도 구글시트 열심히 사용하고 있지만, 스크립트는 잘 쓸줄 모릅니다
    1. 매크로 녹화해서 자동으로 만들어지는 스크립트가 제일 쉽고
    2. 구글링해서 주워모은 스크립트가 대부분입니다.
    3. 요즘 chatGPT가 스크립트 만들어 달라고 하면 다 만들어줘서 관심을 갖고 있습니다.
    (엑셀 VBA, 파이썬, HTML, CSS등 코딩도 질문만 잘 하만 잘 만들어주고, 설명도 친절하게 해주더라고요)
  7. 자나자나 ·
    @carg님 친절한 부연 설명까지 감사드립니다! :)
  8. 구름구경 ·
    대단하네요. 이런 기능이 가능했네요...
  9. js31108 ·
    감사합니다~ 그런데 혹시 하나의 특정시트에만 적용하려면 어떻게 해야할까요?
  10. carg ·
    @js31108님 function onEdit(e) {
    var ss = SpreadsheetApp.getActiveSheet();
    if (ss.getSheetName() === "Sheet1") {
    var currentCell = ss.getActiveCell();
    if( currentCell.getColumn() == 9 ) {
    var nextCell = currentCell.offset(0, 1);
    var newDate = Utilities.formatDate(new Date(),"GMT+09:00", "yyyy/MM/dd hh:mm:ss");
    nextCell.setValue(newDate);
    }
    }
    }
  11. carg ·
    @js31108님 폰으로 chatGPT에게 물어서 수정한 스크립트 인데 되는지 한번 해보시겠어요?
    그 특정시트 이름이 sheet1 이라고 가정한 상황입니다.
  12. js31108 ·
    네! 잘되는 것 같습니다 ^^ 감사합니다~
  13. 11q.kr ·
    한수 배움니다
    ----------
    저는 안되는데 ???(화면에 나오는것) >> 적용됬나 확인방법은 어디서 확인하나요 ??
    - 일반 히스토리 보기 내용을 보면 수정내용 보이는것 이것을 설정해서 보이는 것인가요? ( ok )
    - 히스토리 기능을 처음 알았습니다,,,감사 합니다.

팁과강좌 최근 글

팁과강좌 목록 더 보기