GAS スプレッドシートの値と数式/関数の両方取得し2次元配列化

- JavaScript -
2024.04.30
GAS/Google Apps Script

Google Apps Scriptで、スプレッドシートのシートの特定範囲から、

[[ 1, 2, "=SUM(A1, B1)"], [ 3, 4, "=SUM(A2, B2)"], [ 5, 6, "=SUM(A3, B3)"]...]

のように「値」と「数式/関数」の両方をセルの並びと一致する形で2次元配列で取得するコードをコピペ用にメモしておきます。

意外と、これを一度でキレイに取る方法がない(ような)ので...。

Google Apps Script スプレッドシートの値と数式/関数両方を2次元配列で取得する

以下、特定シートの全範囲を対象として取得する場合の例です。

sheetNamerangeは適宜、修正してください。

Google Apps Scriptfunction getAllValuesAndFormulas() {
  let sheetName = 'シート名';
  let sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName);
  let range = sheet.getDataRange();
  let valuesAndFormulasArray = range.getValues();
  range.getFormulas().forEach((row, rowIndex) => {
    row.forEach((formula, colIndex) => {
      if (formula !== "") {
        valuesAndFormulasArray[rowIndex][colIndex] = formula;
      }
    });
  });
  Logger.log(valuesAndFormulasArray);
}
↑TOP