GoogleAppsScriptでデフォルト色以外のセル数をカウントする
// 文字色がデフォ以外のものをカウントする
// countColor("G2:G") みたいに文字列として渡すひつようがある
function countColor(textRange) {
let sheet = SpreadsheetApp.getActiveSheet();
let colors = sheet.getRange(textRange)
.getFontColorObjects().flat().map((c) => c.asRgbColor().asHexString())
.filter((c) => c !== "#ff000000");
return colors.length;
}
使い方は [拡張機能] - [Apps Script] にて上記のコードを貼り付けるだけ。
範囲の指定の仕方が結構面倒でいつものように E2:G2
とかで指定するとその範囲のセルの中身のデータしか渡されないので正常に動作しない。
なので、"E2:G2"
のような指定をするひつようがある。
=countColor("E2:G2")
ROWを可変にする場合は以下のようになる。
="E"&ROW()&":G"&ROW()
(表示されるデータは E21:G21
)
一方、COLUMNを可変にする場合は文字列にするひつようがあるので
=ADDRESS(2, COLUMN())&":"&ADDRESS(10, COLUMN())
といった感じになる。(表示されるデータは $E$2:$E$10
)