- 公開日:
スプレッドシートの色付きセルをカウントする方法
Google スプレッドシートで特定のセルを色付けして表やリストを作成している際に、色の付いたセルの数をカウントしたいと思ったことはありませんか?
スプレッドシートでは色のついたセルのみをカウントし、合計数を表示することができます。
このようにすることで、特定の情報を抽出し、既存の表やリストから新たな情報を得られるツールともなります。
この記事では、色付きセルをカウントする方法を分かりやすく紹介します。
スプレッドシートの色付きセルをカウントする方法
Google スプレッドシートで色付きセルをカウントする場合、フィルタ機能とSUBTOTAL関数を使用して行うか、Google Apps Script(GAS)でスクリプトを作成します。
以下より、それぞれの方法を詳しく解説します。
フィルタ機能とSUBTOTAL関数を使用して色付きセルをカウント
フィルタ機能とSUBTOTAL関数を使用して色付きセルをカウントする場合、リスト内にある一種類の色をカウントするのは勿論、複数の色に分けてカウントすることが出来ます。
フィルタ機能と併用して使用するSUBTOTAL関数とは、指定したセルの内容を、指定した集計方法で集計することができる関数です。
SUBTOTAL関数は「=SUBTOTAL(集計方法,集計する範囲)」のように設定します。
色付きセルをカウントする場合は、フィルター機能で色付きセルを抽出し、抽出したセルの合計値をSUBTOTAL関数で表示します。
以下より、フィルタ機能とSUBTOTAL関数を使用して色付きセルをカウントする方法を詳しく解説します。
カウント数を表示したいセルを選択します。
この記事では予め、赤色セルと青色セルの数を表示するリストを用意しています。
「=SUBTOTAL(3, 」と入力します。
この数式での「3」は、データの個数を求める(COUNTA)という集計方法を指します。
色付きセルをカウントしたいと範囲を選択します。
数式に範囲が表示されます。
この記事では、別の列に付随する数式をコピーペーストするため、数式内の行数字の前に「$=固定記号」を入力します。
数式内に入力する固定記号については、以下の記事にある「数式内の参照(セル)を固定する」で詳しく紹介しています。
数式を確定させるためにEnterキーを押します。
数式を入力したセルの数式をコピーするために、Ctrlキーを押しながらCキーを押します。
数式を反映したい範囲に貼り付けるために、Ctrlキーを押しながらVキーを押します。
それぞれの列に対応した形で数式が貼り付けられました。
フィルタを設定したい列の最上セルを選択します。
①「データ」、②「フィルタ」を作成の順に選択します。
以下のショートカットキーでも、フィルタを作成することが出来ます。
OS | ショートカットキー |
---|---|
Windows | Alt+D+F (Google Chrome) Alt+ShiftD+F (その他ブラウザ) |
Mac | Option+D+F (Google Chrome) Option+Shift+D+F (その他ブラウザ) |
フィルタマークをクリックします。
①「色でフィルタ」、②「塗りつぶしの色」③「絞り込みたい色(明るい 赤3)」の順に選択します。
赤いセルのみに絞り込まれ、色付きセル数が表示されました。
カウントされた値をコピーするため、Ctrlキーを押しながらCキーを押します。
カウントされた値を貼り付けるため、CtrlキーとShiftキーを押しながらVキーを押します。
数式が、割り出された値で表示されました。
別の列の色付きセルをカウントするために、列Bにおけるフィルタを解除します。
フィルタマークをクリックします。
①「色でフィルタ」、②「なし」を順に選択します。
フィルタが解除されました。
列B同様に、他の列(列C・列D)でも色付きセルをフィルタで絞り込みます。
それぞれ列における数式で割り出された数を値で表示させていきます。
列Dのように複数の色付きセルがある場合は、該当するセルの色(明るい青 3)を選択してください。
色付きセルがカウントされ、色毎の合計数も含めて値が表示されました。
GASでスクリプトを作成して色付きセルをカウント
Google Apps Script(GAS)を使用して色付きセルをカウントする場合、メニューバーにある拡張機能からスクリプトを作成し、それを実行します。
以下より、GASでスクリプトを作成して色付きセルをカウントする方法を詳しく解説します。
この記事では「B2:D7」の範囲を対象に色付きセル数をカウントします。
①「拡張機能」、②「Apps Script」を順に選択します。
「新しいプロジェクト」ボタンをクリックします。
「無題のプロジェクト」という名前になっているので、後に分かりやすいように名前を変更します。
名前を変更をクリックします。
①プロジェクトタイトルを入力し、②「名前を変更」ボタンをクリックします。
この記事では、プロジェクトタイトルを「色付きセルをカウント」としております。
下記の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)」を順に選択します。
スクリプトが実行され、色付きセルのカウント数が表示されました。