👆

【GAS】検索順位の変動を自動で色分け!Googleスプレッドシートに「順位変動ハイライト」機能を追加する方法

に公開

はじめに

「スプレッドシートで検索順位を毎日記録しているけど、変動のチェックが手間すぎる……」
「順位が大きく上がったり下がったりしたときだけ、ひと目で分かるようにしたい!」

そんな悩みを解決するために、**Google Apps Script(GAS)**を使って、検索順位の変動を色で自動的にハイライト表示する方法をまとめました。

この記事では、ある順位管理用スプレッドシートで、前日よりも検索順位が上がったセルを緑色、下がったセルを赤色に塗り分けるGASスクリプトを作成し、スプレッドシートのメニューからワンクリックで実行できるようにカスタマイズする手順を紹介します。


対象読者

  • Googleスプレッドシートを業務で日常的に使っているマーケター
  • GASを触ったことがない or これから使ってみたい非エンジニアの方
  • データ分析を効率化したいWeb担当者、SEO担当者
  • スプレッドシートのカスタマイズに興味がある方

記事を読むメリット

  • GASを使って「順位の変動を視覚的に把握する」ためのスクリプトが作れる
  • Googleスプレッドシートに独自メニューを追加し、ワンクリックで実行できるようになる
  • 条件に応じてセルの背景色を塗り分けるロジックの基本がわかる

結論

順位変動を視覚的に管理したいなら、Google Apps Scriptを使って「前日比で変動したセルを色でハイライト」する自動処理を追加しよう。
さらに、スプレッドシートにカスタムメニューを追加すれば、非エンジニアでも日々の業務に活用しやすくなる。


本文

1. スプレッドシートの前提構成

  • 「定点観測」というシートでKWごとの自社検索順位を日々計測
  • 検索キーワードごとに、順位が毎日横並びで記録されている(行方向に日付)
  • A〜I列は記事の基本情報で、J列以降に順位データがある
  • 1〜3行目はヘッダーや日付などの補足情報で、順位は4行目以降に記録されている

2. 使用したGASスクリプト(順位変動をハイライト)

function highlightRankChanges() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('定点観測');
  const dataRange = sheet.getDataRange();
  const values = dataRange.getValues();
  const bgColors = dataRange.getBackgrounds();

  const startCol = 10; // J列
  const startRow = 4;  // 4行目からが順位データ

  for (let row = startRow - 1; row < values.length; row++) {
    for (let col = startCol; col < values[0].length - 1; col++) {
      const prev = values[row][col];
      const curr = values[row][col + 1];

      const prevRank = (prev === '-') ? 999 : parseInt(prev, 10);
      const currRank = (curr === '-') ? 999 : parseInt(curr, 10);

      if (isNaN(prevRank) || isNaN(currRank)) continue;

      const diff = prevRank - currRank;

      if (diff >= 5) {
        bgColors[row][col + 1] = '#01ff00'; // 緑(順位UP)
      } else if (diff <= -5) {
        bgColors[row][col + 1] = '#ff0000'; // 赤(順位DOWN)
      } else {
        bgColors[row][col + 1] = '#ffffff'; // 白(変動なし)
      }
    }
  }

  dataRange.setBackgrounds(bgColors);
}

3. スプレッドシートにカスタムメニューを追加する

function onOpen() {
  const ui = SpreadsheetApp.getUi();
  ui.createMenu('順位変動ハイライト')
    .addItem('実行する', 'highlightRankChanges')
    .addToUi();
}

この onOpen 関数をスプレッドシートに追加しておけば、ファイルを開いたときに自動でメニューが追加されます。

4. 実行方法

  1. スプレッドシートのメニューから「拡張機能」→「Apps Script」を開く
  2. 上記スクリプトをコピペして保存
  3. スプレッドシートをリロード(再読み込み)すると、メニューに「順位変動ハイライト」が追加される
  4. メニューから「実行する」を選べば、順位の変動に応じてセルが色分けされる!

まとめ

今回は、Google Apps Scriptを使って以下のような自動処理を実装しました。

  • 前日と比較して検索順位が5以上変動したセルを自動的に色分け
  • 圏外("-")も考慮した柔軟なロジック
  • スプレッドシート上のメニューに「順位変動ハイライト」ボタンを設置

GASを使うことで、面倒な目視チェック作業を自動化できるのがとても便利です。
初心者でも取り組みやすいスクリプトなので、ぜひ業務の効率化に役立ててください!

Discussion