エクセル術

色付きセルのみを合計する [SumColor]

34-1.png

関連記事 [ 自分で関数を作ってみる
ユーザー定義関数を使って色付きセルを(指定した色のみ)合計したいと思います。
簡単に言うとSUMIFの色バージョンです。

但し、色に重要性を持たすという事は一般的に避けるべきです。なぜなら色の認識について個人差があるからです。たとえば赤くしているセルがありますが、この定義関数を知らなければ何の為に赤くしているのか理解出来ませんし、勝手に色を変えられるかもしれません。データの場合はなかなか勝手に変えたりしませんよね。
このことを踏まえた上で、自分用に使ってみる分には結構使える機能ではないでしょうか。

Interior.ColorIndex

まずは色情報を読み取らないと始まりません。色判別したいんだから。
その時に使うのがInterior.ColorIndex
Excelには色番号というものがあります。赤だと3番になります。
カラーパレットの並びと番号はバラバラですが、各色に番号というものが付いています。
Interior.ColorIndex で背景色の色番号を返します。
ほかにFont.ColorIndexなどもありますが、ここでは背景色を使います。
上の画像で Cells(“A1”).Interior.ColorIndex だと赤色の3が返ります。

SumColor

関数名SumColor( 計算範囲 , 条件色セル )
機能計算範囲の中で色の条件色セルと同じ色の値を合計する

コード

Function SumColor(計算範囲, 条件色セル)
SumColor = 0
For x = 1 To 計算範囲.Rows.Count
If 計算範囲.Rows(x).Interior.ColorIndex = 条件色セル.Interior.ColorIndex Then
SumColor = SumColor + 計算範囲.Rows(x)
End If
Next
End Function

実際の使い方


ちょっとアレンジを加えれば白以外のセルの合計を・・・という風にも出来ますね。

注意点

注意点が2点あります!
まず、この計算は縦1列にしか対応していません。A1:C10のように複数列の場合はエラーとなります。
次回記事でこの問題について対応しております。そちらの方法を使えば複数列でも合計出来るようになります。
もう1点は、関数を入れた後にセル色を変更した場合。たとえばA7はやっぱり赤だった、と色を変更してもC3の計算結果は更新されません。色を変更しただけではExcelは再計算行われないのです。
対処法としては、Alt+Ctrl+F9を押して強制的にSheetを更新させるのが良いでしょう。
続き [ 色付きセルの件数をカウントする [CountColor] ]
関連記事 [ 自分で関数を作ってみる

アドインダウンロード

ダウンロードページに当記事で紹介したCountColorのアドインファイルを掲載しております。

モバイルバージョンを終了