スキップしてメイン コンテンツに移動

GAS初心者のMath四則計算

GAS初心者のMath四則計算

GAS初心者のための簡単な計算

Google Apps Script(GAS)は、スプレッドシートやドキュメントを自動化するための強力なツールです。初心者がまず取り組むべきは、簡単な計算をスクリプトで実行することです。例えば、セルに入力された数値を取得し、足し算や掛け算を行うだけでも、日常業務の効率化に大きく貢献します。

以下のコードは、シートのA列に入力された数値を取得し、B列にその二倍を表示する例です。

function doubleValues() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const values = sheet.getRange('A1:A').getValues();
  const doubled = values.map(row => [row[0] * 2]);
  sheet.getRange('B1:B' + doubled.length).setValues(doubled);
}

このように、数値操作はGAS初心者でも直感的に扱えるようになります。

Mathオブジェクトで四則演算と代数演算

JavaScript(GASの実行環境)は、Mathオブジェクトを提供しています。Mathオブジェクトを使うと、四則演算だけでなく、平方根や指数関数、三角関数などの高度な計算も簡単に行えます。

例えば、次のスクリプトは、入力された数値の平方根と指数を計算します。

function advancedMath() {
  const num = 16;
  const sqrt = Math.sqrt(num);      // 4
  const exp = Math.exp(num);        // e^16
  Logger.log('sqrt: ' + sqrt + ', exp: ' + exp);
}

また、代数演算として、二次方程式の解を求める関数も簡単に実装できます。

function solveQuadratic(a, b, c) {
  const discriminant = b * b - 4 * a * c;
  if (discriminant < 0) return null;
  const sqrtDisc = Math.sqrt(discriminant);
  return [
    (-b + sqrtDisc) / (2 * a),
    (-b - sqrtDisc) / (2 * a)
  ];
}

Mathオブジェクトを活用することで、GAS初心者でも高度な計算処理をスムーズに実装できます。

合計・平均・最大値・最小値の計算処理

データ分析やレポート作成では、合計、平均、最大値、最小値を求める計算処理が頻繁に必要です。GASでは、スプレッドシートのデータを取得して、JavaScriptの配列操作でこれらの統計量を計算できます。

以下の例では、A列の数値データから合計、平均、最大値、最小値を計算し、結果をB列に表示します。

function stats() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const values = sheet.getRange('A1:A').getValues().flat().filter(v => typeof v === 'number');
  const sum = values.reduce((acc, val) => acc + val, 0);
  const avg = sum / values.length;
  const max = Math.max(...values);
  const min = Math.min(...values);
  sheet.getRange('B1').setValue('合計');
  sheet.getRange('B2').setValue(sum);
  sheet.getRange('B3').setValue('平均');
  sheet.getRange('B4').setValue(avg);
  sheet.getRange('B5').setValue('最大値');
  sheet.getRange('B6').setValue(max);
  sheet.getRange('B7').setValue('最小値');
  sheet.getRange('B8').setValue(min);
}

このように、計算処理をスクリプト化することで、手作業で行うよりも高速かつ正確にデータを扱えます。

この記事はAIによって作成されました。

コメント