• 公開日:

スプレッドシートの色付きセルをカウントする方法

Google スプレッドシートで特定のセルを色付けして表やリストを作成している際に、色の付いたセルの数をカウントしたいと思ったことはありませんか?

スプレッドシートでは色のついたセルのみをカウントし、合計数を表示することができます。

このようにすることで、特定の情報を抽出し、既存の表やリストから新たな情報を得られるツールともなります。

この記事では、色付きセルをカウントする方法を分かりやすく紹介します。

スプレッドシートの色付きセルをカウントする方法

Google スプレッドシートで色付きセルをカウントする場合、フィルタ機能とSUBTOTAL関数を使用して行うか、Google Apps Script(GAS)でスクリプトを作成します。

以下より、それぞれの方法を詳しく解説します。

フィルタ機能とSUBTOTAL関数を使用して色付きセルをカウント

フィルタ機能とSUBTOTAL関数を使用して色付きセルをカウントする場合、リスト内にある一種類の色をカウントするのは勿論、複数の色に分けてカウントすることが出来ます。

フィルタ機能と併用して使用するSUBTOTAL関数とは、指定したセルの内容を、指定した集計方法で集計することができる関数です。

SUBTOTAL関数は「=SUBTOTAL(集計方法,集計する範囲)」のように設定します。

色付きセルをカウントする場合は、フィルター機能で色付きセルを抽出し、抽出したセルの合計値をSUBTOTAL関数で表示します。

以下より、フィルタ機能とSUBTOTAL関数を使用して色付きセルをカウントする方法を詳しく解説します。

カウント数を表示したいセルを選択

カウント数を表示したいセルを選択します。

この記事では予め、赤色セルと青色セルの数を表示するリストを用意しています。

「=SUBTOTAL(3, 」と入力

「=SUBTOTAL(3, 」と入力します。

この数式での「3」は、データの個数を求める(COUNTA)という集計方法を指します。

カウントしたいと範囲を選択

色付きセルをカウントしたいと範囲を選択します。

数式に範囲が表示されます。

行数字の前に「$」を入力

この記事では、別の列に付随する数式をコピーペーストするため、数式内の行数字の前に「$=固定記号」を入力します。

数式内に入力する固定記号については、以下の記事にある「数式内の参照(セル)を固定する」で詳しく紹介しています。

スプレッドシートの数式を固定する方法

Enterキーを押す

数式を確定させるためにEnterキーを押します。

Ctrl+Cキーを押す

数式を入力したセルの数式をコピーするために、Ctrlキーを押しながらCキーを押します。

Ctrl+Vを押す

数式を反映したい範囲に貼り付けるために、Ctrlキーを押しながらVキーを押します。

列の最上セルを選択

それぞれの列に対応した形で数式が貼り付けられました。

フィルタを設定したい列の最上セルを選択します。

「フィルタ」を作成の順に選択

「データ」、②「フィルタ」を作成の順に選択します。

以下のショートカットキーでも、フィルタを作成することが出来ます。

OSショートカットキー
WindowsAlt+D+F (Google Chrome)
Alt+ShiftD+F (その他ブラウザ)
MacOption+D+F (Google Chrome)
Option+Shift+D+F (その他ブラウザ)
フィルタマークをクリック

フィルタマークをクリックします。

「絞り込みたい色(明るい 赤3)」の順に選択

「色でフィルタ」、②「塗りつぶしの色」「絞り込みたい色(明るい 赤3)」の順に選択します。

Ctrl+Cキーを押す

赤いセルのみに絞り込まれ、色付きセル数が表示されました。

カウントされた値をコピーするため、Ctrlキーを押しながらCキーを押します。

Ctrl+Shift+Vを押す

カウントされた値を貼り付けるため、CtrlキーとShiftキーを押しながらVキーを押します。

フィルタマークをクリック

数式が、割り出された値で表示されました。

別の列の色付きセルをカウントするために、列Bにおけるフィルタを解除します。

フィルタマークをクリックします。

「なし」を順に選択

「色でフィルタ」、②「なし」を順に選択します。

他の列でもフィルタで絞り込む

フィルタが解除されました。

列B同様に、他の列(列C・列D)でも色付きセルをフィルタで絞り込みます。

それぞれ列における数式で割り出された数を値で表示させていきます。

該当するセルの色(明るい青 3)を選択

列Dのように複数の色付きセルがある場合は、該当するセルの色(明るい青 3)を選択してください。

色付きセルがカウントされ、値が表示される。

色付きセルがカウントされ、色毎の合計数も含めて値が表示されました。

GASでスクリプトを作成して色付きセルをカウント

Google Apps Script(GAS)を使用して色付きセルをカウントする場合、メニューバーにある拡張機能からスクリプトを作成し、それを実行します。

以下より、GASでスクリプトを作成して色付きセルをカウントする方法を詳しく解説します。

「Apps Script」を順に選択

この記事では「B2:D7」の範囲を対象に色付きセル数をカウントします。

「拡張機能」、②「Apps Script」を順に選択します。

「新しいプロジェクト」ボタンをクリック

「新しいプロジェクト」ボタンをクリックします。

名前を変更をクリック

「無題のプロジェクト」という名前になっているので、後に分かりやすいように名前を変更します。

名前を変更をクリックします。

名前を変更します

プロジェクトタイトルを入力し、②「名前を変更」ボタンをクリックします。

この記事では、プロジェクトタイトルを「色付きセルをカウント」としております。

GASスクリプトをコピーして貼り付けます。

下記のGASスクリプトをコピーして貼り付けます。

選択した範囲内を検査し、色付けされたセルを見つけてカウントするというスクリプトです。

function countColoredCellsInRange() {
  // スプレッドシートのシートを取得
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  
  // カウントする範囲を指定
  var range = sheet.getRange(':');
  
  // セルのバックグラウンド色を取得するための2次元配列を取得
  var colors = range.getBackgrounds();
  
  // カウントを初期化
  var count = 0;
  
  // 2次元配列をループして、色のセルをカウント
  for (var i = 0; i < colors.length; i++) {
    for (var j = 0; j < colors[i].length; j++) {
      // バックグラウンド色が空でない(色が付いている)場合、カウントをインクリメント
      if (colors[i][j] !== '#ffffff') { // 例えば、白色でない色をカウント
        count++;
      }
    }
  }
  
  // 結果を表示
  SpreadsheetApp.getUi().alert('指定された範囲内の色の付いたセルの数:' + count);
}
シートのセル範囲を入力

カウントする対象となる、シートのセル範囲を入力します。

この記事では「B2:D7」の範囲となります。

プロジェクトを保存をクリック

「プロジェクトを保存」をクリックします。

「マクロをインポート」を順に選択

現在のシートに戻り、①「拡張機能」、②「マクロ」、③「マクロをインポート」を順に選択します。

「関数を追加」ボタンをクリック

作成したスクリプトが表示されています。

「関数を追加」ボタンをクリックします。

閉じるをクリック

チェックマークに変わり、マクロをインポートすることが出来ました。

閉じるをクリックして、メニューを閉じます。

「追加したマクロ」の順に選択

「拡張機能」、②「マクロ」、③「追加したマクロ名(countColoredCellsInRange)」を順に選択します。

色付きセルがカウントされる

スクリプトが実行され、色付きセルのカウント数が表示されました。