Googleスプレッドシート│連続データをグループごとに色で塗り分ける方法

Google スプレッドシートで「同じ値が連続している行」を視覚的にわかりやすくしたいことってありませんか?

例えば、以下のように A列にグループが並んでいるとします。

このような「同じ値が連続している行」を グループごとに淡い色で塗り分ける ことで、データが一目で見やすくなります。

目次

条件付き書式では難しい? → GASで解決!

条件付き書式では、「連続している同じ値ごとに色を分ける」という処理は難しいですが、Google Apps Script(GAS) を使えば一発で自動化できます!

ここはあえて条件式書式をつかわず、仕分けたい時にGASで色付けしてしまいます。

実装コード(GAS)

拡張機能 > APP Scriptから下記のコードを入れて実行するだけです。

列は自分で指定してください。

  1. Google スプレッドシートを開く
  2. メニュー「拡張機能」→「Apps Script」を選択
  3. 上記コードを貼り付けて保存
  4. 「▶ 実行」ボタンでスクリプトを実行
function colorGroupingsInColumnA() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const range = sheet.getRange("A1:A" + sheet.getLastRow()); //★列は自分で指定する
  const values = range.getValues();

  const colors = [
    "#f0f8ff", // 淡い青
    "#f5f5dc", // 淡いベージュ
    "#f0fff0", // 淡い緑
    "#fffaf0", // 淡いオレンジ
    "#f5f5f5", // グレー系
    "#ffffe0", // 淡い黄色
    "#e6e6fa"  // ラベンダー
  ];

  let colorIndex = 0;
  let startRow = 1;

  for (let i = 1; i < values.length; i++) {
    if (values[i][0] !== values[i - 1][0]) {
      const numRows = i - startRow + 1;
      const groupRange = sheet.getRange(startRow, 1, numRows);
      groupRange.setBackground(colors[colorIndex % colors.length]);
      startRow = i + 1;
      colorIndex++;
    }
  }

  // 最後のグループも色付け
  const lastGroupRange = sheet.getRange(startRow, 1, values.length - startRow + 1);
  lastGroupRange.setBackground(colors[colorIndex % colors.length]);
}

最後に確認しましょう。

まとめ

このGASスクリプトを使えば、連続した同じ値のグループごとに交互の淡い色を付けることができます。

大量データでも一目でグループを視覚的に認識でき、作業効率がグッとアップします!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

WAZAの有料記事のサブスクリプションも開始しました。

目次