【スプレッドシート】色つきセルをカウント・合計する方法!

Googleスプレッドシートで、「色付きのセルの個数」を数える方法をご紹介します。色付きのセルの数値を合計する方法や、GAS(Google Apps Script)を使って「指定の色と同じ色のセルを数える」関数を作成する方法も解説しているので、ぜひ参考にしてみてください。

スポンサーリンク

色付きセルをカウントする(関数)

【手順①】フィルタで「色」を絞り込む

【スプレッドシート】色つきセルをカウント・合計する方法!

数えたい色だけが表示されるように、フィルタで絞り込みます。

  1. カウントしたいデータ範囲を選択します。
  2. メニューの「データ」→「フィルタを作成」をクリックします。
  3. 見出しのアイコン(▼)を開き、「色でフィルタ」→「塗りつぶしの色」→「」を選びます。

【手順②】表示されている行だけ数える

SUBTOTAL関数で数える

【スプレッドシート】色つきセルをカウント・合計する方法!

以下のような数式を入力して、表示されている行だけをカウントします。

例:=SUBTOTAL(3,B3:B5)

💡ポイント: 関数コードの「3」は、非表示の行を無視して数える「COUNTA」という意味です。

SUBTOTAL関数の引数:(関数コード, 範囲1, [範囲2, …])


参考:SUBTOTAL関数の詳しい解説は、「非表示の行を含めない集計!」の記事をご覧ください。

右下のステータスで確認する

【スプレッドシート】色つきセルをカウント・合計する方法!

【手順】

  1. 数えたい範囲をドラッグして選択します。
  2. 右下のステータスから「個数」を選んで確認します。
スポンサーリンク

色付きセルを合計する(関数)

【スプレッドシート】色つきセルをカウント・合計する方法!

「カウントする」ときと同じようにフィルタで絞り込み、以下のいずれかの方法で合計します。

1. SUBTOTAL関数で合計する

  • 例:=SUBTOTAL(9,B3:B5)
  • 💡ポイント: 関数コードの「9」は、非表示の行を無視して合計する「SUM」という意味です。

2. 右下のステータスで確認する

  1. 数えたい範囲をドラッグして選択します
  2. 右下のステータスから「合計」を選んで確認します。
スポンサーリンク

色付きセルをカウントする(GAS)

スクリプト(プログラム)を作る

【スプレッドシート】色つきセルをカウント・合計する方法!

【手順①】

  • メニューの「拡張機能」→「Apps Script」を開きます。
  • エディタにある元々のコードを消して、以下のコードを貼り付け、「プロジェクトを保存」をクリックします。
/**
* 指定した範囲内のセルの色をカウントする
* @customfunction
*/
function COUNTCOLOR(range, colorRef) {
// 現在のシートを取得
const sheet = SpreadsheetApp.getActiveSheet();

// 指定した範囲(B2:B5など)のアドレスを取得
const formula = SpreadsheetApp.getActiveRange().getFormula();
const args = formula.match(/\((.*)\)/)[1].split(',');

// 見本となるセルの色を取得
const color = sheet.getRange(args[1].trim()).getBackground();

// 集計範囲の色を取得
const backgrounds = sheet.getRange(args[0].trim()).getBackgrounds();

let count = 0;
for (let i = 0; i < backgrounds.length; i++) {
for (let j = 0; j < backgrounds[i].length; j++) {
if (backgrounds[i][j] === color) {
count++;
}
}
}
return count;
}

【手順②】

  • 「実行」をクリックして、正常に作動するかどうかを確認します。※初めて実行する場合は「承認」が必要です。

シートで関数を使う

【スプレッドシート】色つきセルをカウント・合計する方法!

シートに戻って、以下のように入力します。

例:=COUNTCOLOR(B2:B5, D2)

【数式の解説】

  • B2:B5:数えたい範囲
  • D2:数えたい色のセル

注意点:色を変えた後は、数式を一度消してから、数式を入れ直します。

タイトルとURLをコピーしました