본문 바로가기
구글 앱 스크립트

구글 앱스 스크립트: 스프레드시트 함수 설정하기 (Google Apps Script) [9]

by parkjp 2023. 12. 8.

 

서론

 

지난 글에 이어서 이번 포스팅에서는 스프레드시트에서 함수를 설정하는 법을 배워보도록 하겠습니다.

지난 포스팅을 못보신 분들은 아래 링크를 눌러주세요.

반응형

https://developer-jp.tistory.com/180

 

구글 앱스 스크립트: 스프레드시트 셀 병합하기 (Google Apps Script) [8]

서론 지난 글에 이어서 이번 포스팅에서는 스프레드시트에서 셀 병합하는 법을 해보겠습니다. 지난 포스팅을 보실 분은 아래 링크를 눌러주세요. https://developer-jp.tistory.com/178 구글 앱스 스크립

developer-jp.tistory.com

 

스프레드시트 함수 설정하기

 

이번 포스팅에서는 스프레드시트에서 함수를 설정하는 법을 배워보도록 하려 합니다.

우선 함수를 설정하고 가져오는 함수가 어떤 것들이 있는지 보겠습니다.

 

  • setFormula
  • setFormulaR1C1
  • setFormulas
  • setFormulasR1C1

  • getFormula
  • getFormulaR1C1
  • getFormulas
  • getFormulasR1C1

 

setFormula

 

setFormula 함수는 단일 셀에 스프레드시트의 함수기능을 설정합니다.

  const activeSpreadSheet = SpreadsheetApp.getActiveSpreadsheet();
  const spreadsheet = activeSpreadSheet.getActiveSheet();

  spreadsheet.getRange('C1').setFormula("=SUM(A1:B1)");

 

위 코드는 C1셀에 A1:B1의 값을 더하는(SUM) 함수를 설정했습니다.

해당 코드를 실행 시킨다면 아래와 같은 결과를 보실 수 있습니다.

저는 A1과 B1에 각각 1과 2를 설정해두고 실행하였습니다.

스프레드시트 setFormula 예제

 

setFormulaR1C1

 

setFormulaR1C1 함수는 마찬가지로 단일 셀에 스프레드시트의 함수기능을 설정합니다.

대신 R1C1 표기법을 사용해야합니다.

 

// R1C1 표기법
spreadsheet.getRange('E1').setFormulaR1C1("=SUM(R[0]C[-4]:R[0]C[-1])");

// 일반 표기법
spreadsheet.getRange('E1').setFormulaR1C1("=SUM(A1:D1)");

 

위와 같이 R1C1 표기법으로 변형하였습니다.

위 R1C1 표기법은 A1:D1과 같습니다.

따라서 아래와 같은 결과가 나타나게 됩니다.

 

스프레드시트 setFormulaR1C1 예제

 

 

setFormulas와 setFormulasR1C1

 

기존에는 단일 행에 함수를 설정하는 것이었다면 이번에는 다중 셀에 함수를 한번에 설정하는 방법입니다.

 

  const formulas = [
    ["=SUM(B2:B4)", "=SUM(C2:C4)", "=SUM(D2:D4)"],
    ["=AVERAGE(B2:B4)", "=AVERAGE(C2:C4)", "=AVERAGE(D2:D4)"]
  ];

  const cells = spreadsheet.getRange("B5:D6");
  cells.setFormulas(formulas);

 

저는 B2:D4셀에 임의의 숫자를 입력해두고

위 스크립트를 이용하여 B5:D6 범위의 각각의 셀에 해당 합과 평균 함수들을 설정하였습니다.

 

위 스크립트 예제의 결과입니다.

 

스프레드시트 setFormulas 예제

 

setFormulasR1C1함수는 마찬가지로 R1C1 표기법으로 설정하시면 됩니다.

 

 

getFormula와 getFormulas

 

이번에는 설정되어져 있는 함수를 가져오는 법을 해보겠습니다.

 

  const cells = spreadsheet.getRange("B5");
  Logger.log(cells.getFormula());
  // 결과: =SUM(B2:B4)

 

getFormula함수는 스프레드시트 영역내에 따로 나타나지는 않습니다.

이 함수는 내가 지정한 셀에 적용된 함수의 수식을 가져오는 기능입니다.

다른 셀로 함수를 복사한다던지 응용을 할 수 있습니다.

 

getFormuals함수도 마찬가지인데요. 단일 셀이 아닌 지정한 범위의 함수들을 가져오는 기능입니다.

 

  const cells = spreadsheet.getRange("B5:D6");
  Logger.log(cells.getFormulas());
  // 결과: [[=SUM(B2:B4), =SUM(C2:C4), =SUM(D2:D4)], [=AVERAGE(B2:B4), =AVERAGE(C2:C4), =AVERAGE(D2:D4)]]

 

 

마무리

 

여기까지 스프레드시트에 함수를 설정하고 가져오는 법을 배워보았습니다.

 

혹시나 구글 앱스 스크립트에 대해 궁금하신 점이나 알고 싶으신 기능이 있으신 분은

직접 댓글로 질문해 주시면 해당 질문을 토대로 포스팅을 써보겠습니다.

반응형