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

スプレッドシートのフィルターで色付きのセルを抽出し、SUBTOTAL関数で色付きのセルの個数をカウントする方法を解説します。色付きのセルの数値を合計する方法や、GAS(Google Apps Script)で指定のセルと同じ色をカウントする方法もご紹介しているので、ぜひ参考にしてみてください。

スポンサーリンク

色付きセルをカウントする方法

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

SUBTOTAL関数は 1 つまたは複数の範囲を、指定した集計コードに従って集計します。

COUNTA関数に該当するコードは 3 または 103 です。3 は非表示の行を含むセルの個数を、103 は非表示の行を含まないセルの個数を返します。

例えば SUBTOTAL(3,C2:C8) なら、返り値は範囲内の空白でないセルの個数 7 です。

SUBTOTAL関数の構成要素:(集計コード,範囲 1,[範囲 2],…)

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

表などの範囲を選択し、[データ]タブから[フィルタを作成]をクリックします。

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

絞り込みアイコンを開き、[色でフィルタ]から[塗りつぶしの色]をクリックします。

絞り込む色を選択すると、フィルタ範囲が色つきのセルに絞込みされました。SUBTOTAL関数の集計結果を確認すると、表示されているセルの個数 3 になっています。

フィルタで除外された行は結果に含まれないので、コードは 3 でも 103 でもOKです。

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

絞り込みの[色でフィルタ]を[なし]に戻すと、セルの個数は 7 に戻ります。

スポンサーリンク

色つきセルを合計する方法

スプレッドシートで色付きのセルを合計する方法

SUM関数に該当するSUBTOTAL関数の集計コードは、9 または 109 です。9 は非表示の行を含む数値の合計を、103 は非表示の行を含まない数値の合計を返します。

例えば SUBTOTAL(9,C2:C8) なら、返り値は売上の合計 1,420 です。

フィルタ機能で色つきのセルに絞り込むと、自動的に表示されている数値の合計 810 になります。

フィルタで除外された行は、SUBTOTAL関数の集計コードに関わらず結果に含まれません。

スポンサーリンク

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

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

GASを使って、E2セルと同じ色のセルの個数をカウントする関数を作成します。

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

E2セルの色を変更した場合、関数を一度消してから入力し直すと結果が更新されます。まず[拡張機能]タブから、[Apps Script]を開いてください。

function countcolor() {
  const ss = SpreadsheetApp.getActiveSpreadsheet(); 
  const sheet = ss.getSheetByName('シート1');
  const color = sheet.getRange(2,5).getBackground();
  const dcolor = sheet.getRange(2,3,7,1).getBackgrounds();
  
  var count = 0;
  for(var c = 0; c < dcolor[0].length; c++) {
    for( r= 0; r < dcolor.length; r++) {

      if(dcolor[r][c] == color) {
        count++
      }
    }
  }
  return count ;
}

指定したセルの色をカウントするコードは、上の通りです。

コードを入力できたら[プロジェクトを保存]をクリックし、一度スクリプトを[実行]します。初めて実行する場合は承認が求められるので、[権限を確認]をクリックしてください。

承認の手順:[詳細]→[無題のプロジェクト(安全ではないページ)に移動]→[許可]

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

functoinに続く英単語部分が、色付きのセルを数えるオリジナルの関数名です。

getSheetByNameには、該当のシート名を入力します。getRangeにはそれぞれカウントする色のセル(今回はE2)と、集計範囲を(行番号,列番号,行数,列数)で指定してください。

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