본문 바로가기
일잘러 되어보기

ChatGPT로 구글스프레드시트 업무 자동화하기 - 시작하기! 앱스스크립트(GAS), 정규식

by ClaireB 2024. 1. 28.

김철수, <챗GPT와 업무자동화>, 위키북스, 2023.

위 책으로 엑셀 업무 자동화를 연습했다.

 

이 책에서 엑셀 다음으로는 구글스프레드시트를 이용하는 방법을 나온다.

 

엑셀의 VBA 코드는 이전에 들어봤고, 한 번 정도 사용해본 적이 있지만

구글스프레드시트의 GAS 기능은 정말 처음이라!

기초부터 정리해본다.

 

Google Apps Script
구글 앱스 스크립트

○ 구글 앱스 스크립트?

= Google Apps Script = GAS = 가스

- 엑셀의 VBA랑 비슷한 것. (but, 언어가 살짝 다르다.)

 

○ 구글 앱스 스크립트 입력창을 띄우는 방법은?

- 구글 스프레드 시트에서

  확장 프로그램 > Apps Script 메뉴로 간다.

구글 앱스 스크립트

- 그러면 아래 같은 새로운 창이 뜬다.

- 여기에서 빈 코드 창에(현재 Code.gs 기본 선택) 챗GPT가 알려준 앱스 스크립트를 입력하고

 ▷ 실행을 누르면 되는데, 
- 이 책에서는 ②으로 표시한 배포 > 새 배포를 먼저 하라고 나온다.

  '웹 앱'을 선택하고, 계속 경고창 뜰 때 Advanced 고급에서 진행하면 된다고..

- 그리고 ▷ 실행을 누르면 앱스 스크립트가 실행된다.

 

○ 구글 스프레드 시트에서 새 앱스 스크립트를 추가하고 싶을 때

- 좌측 상단의 + 버튼을 누르고 '스크립트'를 추가해준다.

 

 

 

연습해보기!
자유분방하게 입력된 핸드폰 번호
000-000-0000 양식으로 통일하기

 

주의!
- 휴대폰 번호 몇백 개 안 되면, ChatGPT에 바로 바꿔달라고 요청하면 편하긴 하지만!
- 그러면 휴대폰 번호를 대량으로 입력하는 것이 되기 때문에
  개인정보 보호법 위반일 수도 있다.
- 그래서 주의해야 함.
- 앱스 스크립트를 요청하고 내 구글 스프레드 시트에서 처리하면 안전!

 

○ 구글 폼으로 입력받은 핸드폰 번호 양식이 일관적이지 않을 때

- 없이 입력된 010999999번호는 앞의 0이 사라진다고.

★ 그래서, 000-000-0000 양식으로 통일하기 전에,

우선 앞에 0이 없어 "10"으로 시작하는 셀은 "0"을 붙여줘야 한다.

 

ChatGPT(뤼튼 이용)에 물어보기

○ 위 앱스 스크립트 뜻을 조금 해석해보기!

Why?

★작동이 잘되지 않으면 일부 코드 변경이 필요함
★개발자만큼은 모르더라도 '어디가 잘못된 것 같다'는 느낌은 와야 함.

 

- 구글 앱스 스크립트는 '함수(function)' 단위로 실행

  위 캡쳐 이미지에서 addZeroToCell이 ChatGPT가 지정한 함수명.

- 함수는 시트에 =addZeroToCell와 같은 형식으로 쓸 수 있음.

- var : 변수(variable) 의미. 변수를 지정하는 것

- data[i][0]은 i+1행의 1열의 데이터를 의미함

 

○ 그 다음, 형식이 제각각인 핸드폰번호 형식 통일하기

▲ 넘 놀랍고 똑똑해서 그대로 캡쳐해서 왔다.

올바른 핸드폰번호 양식이 000-0000-0000이 되어야 한다고 말하지도 않았고,

심지어 프롬프트에 오타까지 냈는데 ㅋㅋㅋㅋ (형시긍ㄹ)

'형식을'이라고 물어봤다는 것을 알고 이렇게 답을 제시해줬다.

 

 

○ ChatGPT에게 물어볼 프롬프트 예시들

구글 시트에서 F열에 정확한 이메일 형식이 아닌 셀을 찾아서 노란색으로 칠하는 앱스 스크립트를 짜 줘

 

 

정규식 이해해보기

 

이메일 형식이 아닌 셀을 찾아달라고 했을 때

앱스 스크립트 안에 아래 코드가 포함되었다.

var emailPattern = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; // 이메일 주소 패턴을 정의합니다.

 

이전에 파이썬에서 텍스트마이닝할 때도 본 정규식인데,

해석해보자.

 

- . 마침표 : 임의의 문자

- * 별표 : 앞 문자가 0개 이상 반복되는 패턴

- + 덧셈표 : 앞 문자가 1개 이상 반복되는 패턴

- ? 물음표 : 앞 문자가 0개 또는 1개인 패턴

- ^ 시작 : 문자열의 시작, 또는 뒤에 글자가 아닌 것

- \s : 공백

- \d : 숫자

 

[^\s@]+ : 공백(\s)이나 @이 아닌(^) 문자가 하나 이상(+) 있어야 함.

@ : @이 있어야 함

\. : 점(.)이 있어야 함.

$ : 문자열이 끝나야 함.

 

 

댓글