GASで平均を計算するコード(AVERAGE)|横並びの数値を自動で集計する方法

1行目の数値データの平均を自動計算できます。
横方向に並んだデータの集計に便利です。
GAS初心者でもコピペですぐ利用できます。

このコードでできること

・1行目の数値の平均を計算
・文字列を除外して集計
・平均値をB2セルへ自動出力

GASコード

function calculateAverageOfFirstRow() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  // シート名を指定して取得
  const sheet = ss.getSheetByName("横計算");
  
  // シートが存在するか確認(存在しない場合は処理を終了)
  if (!sheet) {
    Browser.msgBox("エラー: 「横計算」という名前のシートが見つかりません。");
    return;
  }
  
  // 1行目のデータを取得
  const lastColumn = sheet.getLastColumn();
  
  // 1行目のデータを取得(列が0の場合は処理しない)
  if (lastColumn === 0) {
    sheet.getRange("B2").setValue("データなし");
    return;
  }
  
  const range = sheet.getRange(1, 1, 1, lastColumn);
  const values = range.getValues()[0];
  
  // 数値のみを抽出して合計と件数を計算
  let sum = 0;
  let count = 0;
  
  for (let i = 0; i < values.length; i++) {
    // 値が数値であるかを確認
    if (typeof values[i] === 'number') {
      sum += values[i];
      count++;
    }
  }
  
  // 平均値を計算してB2セルに書き込み
  if (count > 0) {
    const average = sum / count;
    sheet.getRange("B2").setValue(average);
  } else {
    sheet.getRange("B2").setValue("データなし");
  }
}

カスタマイズ例

パターン①

平均値の出力先をD5セルへ変更

sheet.getRange("D5").setValue(average);

パターン②

2行目の平均を計算

const range = sheet.getRange(2, 1, 1, lastColumn);

関数名

下記が実行する関数名です。

calculateAverageOfFirstRow

関数名についてはこちらをご覧ください。

GASの関数名を確認する方法|function ○○○() が実行する名前です

よくあるエラー

症状

「横計算」という名前のシートが見つかりません。

対処法

・シート名を確認する
・全角半角の違いを確認する

症状

データなしと表示される

対処法

・1行目に数値が入力されているか確認する
・数値以外しか入力されていないか確認する

サンプルファイル

このコードを試せるGoogleスプレッドシートを配布しています。

AVERAGE_スプレッドシート(GASコードなし)

【完成】AVERAGE_スプレッドシート(GASコードあり)

関連記事

GASコードの貼り付け方法
GASコードの実行方法
GASの関数名を確認する方法
【GAS】このアプリは Google で確認されていません|原因と解決方法
GASで合計を計算するコード|SUM計算を自動化する方法

コメント