IT

구글 App Script 나만의 함수로 자동화 시작하기

HoNEY1106 2025. 5. 9. 18:13
반응형

구글 스프레드시트를 쓰다 보면
“이거 자동으로 되면 얼마나 좋을까?” 싶은 순간, 한두 번쯤 있으셨죠?

그럴 땐 직접 만든 **사용자 정의 함수(Custom Function)**로
나만의 자동화를 시작해보세요!
코딩 초보도 따라 할 수 있어요.


🧠 사용자 정의 함수란?

스프레드시트에서 기본으로 제공하는 함수들 외에,
내가 원하는 기능을 직접 만들어 사용할 수 있는 방법이에요.

예를 들어, 이메일에서 아이디만 추출하고 싶을 때:
=getEmailId("honey@gmail.com")
이렇게 셀에서 쓸 수 있는 거죠!


🛠 만드는 방법 (정말 간단해요)

1단계: Apps Script 열기

  • 구글 스프레드시트를 열고
  • 상단 메뉴 → [확장 프로그램] → [Apps Script] 클릭

2단계: 함수 작성하기

기본 구조는 이렇게 생겼어요:

function 함수이름(입력값) {
  // 처리할 내용
  return 결과;
}

3단계: 저장 후 사용하기

함수를 저장하면
스프레드시트 셀에서 =함수이름() 형식으로 바로 사용 가능해요!
다른 시트에서도 쓸 수 있다는 거, 아주 유용하죠. 😊


💻 실전 예제 모음 (복사해서 바로 써보세요!)


📧 1. 이메일 주소에서 아이디만 추출하기

이 함수는 이메일 주소를 @ 기준으로 나누고, 앞부분(아이디)만 반환해요.

function getEmailId(email) {
  return email.split("@")[0];
}
 

사용 예
=getEmailId("honey@gmail.com") → "honey"

💬 설명

  • split("@"): 문자열을 @ 기준으로 나눔
  • [0]: 나뉜 배열 중 첫 번째 요소(아이디) 반환

🔠 2. 이름을 대문자 이니셜로 만들기

이 함수는 이름의 각 글자의 첫 글자를 대문자로 바꿔 이니셜을 만들어줘요.

function getInitials(name) {
  let result = "";
  for (let i = 0; i < name.length; i++) {
    result += name[i].charAt(0).toUpperCase();
  }
  return result;
}
 

사용 예
=getInitials("HoNEY") → "H"

💬 설명

  • charAt(0).toUpperCase(): 각 글자의 첫 글자를 대문자로 변환
  • 반복문으로 글자 수만큼 순회해서 result에 하나씩 더함

📆 3. 날짜가 주말인지 확인하기

이 함수는 입력한 날짜가 주말(토/일)인지 확인해 TRUE/FALSE를 반환해요.

function isWeekend(date) {
  const day = new Date(date).getDay();
  return (day === 0 || day === 6);
}
 

사용 예
=isWeekend("2025-05-04") → TRUE

💬 설명

  • new Date(date).getDay(): 요일 숫자 반환 (일: 0, 토: 6)
  • 0 또는 6이면 true, 아니면 false 반환

📅 4. 두 날짜 사이의 일 수 계산하기

입력한 두 날짜 사이의 날짜 차이를 ‘며칠’ 단위로 계산해요.

function daysBetween(date1, date2) {
  const d1 = new Date(date1);
  const d2 = new Date(date2);
  return Math.floor(Math.abs(d2 - d1) / (1000 * 60 * 60 * 24));
}
 

사용 예
=daysBetween("2025-05-01", "2025-05-08") → 7

💬 설명

  • new Date(): 날짜를 객체로 변환
  • 두 날짜의 차이(ms)를 일(day) 단위로 환산
  • Math.abs(): 날짜 순서와 무관하게 절대값으로 계산

🔢 5. 숫자에 천 단위 쉼표 넣기

금액처럼 큰 숫자를 보기 좋게 쉼표로 구분해주는 함수예요.

function addCommas(number) {
  return number.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
}
 

사용 예
=addCommas(1234567) → "1,234,567"

💬 설명

  • toString(): 숫자를 문자열로 변환
  • 정규표현식으로 천 단위마다 쉼표 삽입

❓ 6. 셀이 비었는지 확인하기

셀에 내용이 없으면 "비어 있음", 있으면 "내용 있음"을 출력해요.

function isEmpty(text) {
  return text === "" ? "비어 있음" : "내용 있음";
}
 

사용 예
=isEmpty(A1)

💬 설명

  • 삼항 연산자(조건 ? 참 : 거짓) 사용
  • "" (빈 문자열)과 비교하여 조건 처리

👋 7. 시간에 따라 인사말 출력하기

현재 시간 기준으로 아침, 오후, 저녁 인사말을 자동 출력해요.

function getGreeting() {
  const hour = new Date().getHours();
  if (hour < 12) return "좋은 아침입니다!";
  else if (hour < 18) return "좋은 오후입니다!";
  else return "좋은 저녁입니다!";
}
 

사용 예
=getGreeting()

💬 설명

  • getHours(): 현재 시간(0~23시)을 가져옴
  • 시간대 조건에 따라 다른 문자열 반환

✅ 사용자 정의 함수 쓸 때 꿀팁!

  • 함수 이름은 영어 소문자로 시작, 공백 없이!
  • 결과를 셀에 보여주려면 return 필수!
  • 한번 만든 함수는 다른 스프레드시트에서도 재사용 가능
반응형