Articles

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

この記事をdel.icio.usに登録する この記事をはてなブックマークに登録する この記事をGoogleブックマークに登録する この記事をYahoo!ブックマークに登録する この記事をdiggに登録する この記事をlivedoor clipに登録する この記事をNewsGattor Onlineに登録する

関連記事 [ 自分で関数を作ってみる

ユーザー定義関数を使って色付きセルを(指定した色のみ)合計したいと思います。

簡単に言うとSUMIFの色バージョンです。

34-1.png

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

このことを踏まえた上で、自分用に使ってみる分には結構使える機能ではないでしょうか。



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

実際の使い方
34-2.png

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

注意点

注意点が2点あります!
まず、この計算は縦1列にしか対応していません。A1:C10のように複数列の場合はエラーとなります。
次回記事でこの問題について対応しております。そちらの方法を使えば複数列でも合計出来るようになります。

もう1点は、関数を入れた後にセル色を変更した場合。たとえばA7はやっぱり赤だった、と色を変更してもC3の計算結果は更新されません。色を変更しただけではExcelは再計算行われないのです。
対処法としては、Alt+Ctrl+F9を押して強制的にSheetを更新させるのが良いでしょう。

続き [ 色付きセルの件数をカウントする [CountColor]

関連記事 [ 自分で関数を作ってみる

関連記事




この記事をdel.icio.usに登録する この記事をはてなブックマークに登録する この記事をGoogleブックマークに登録する この記事をYahoo!ブックマークに登録する この記事をdiggに登録する この記事をlivedoor clipに登録する この記事をNewsGattor Onlineに登録する

トラックバック一覧

コメント一覧

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

SumColor = SumColor + 計算範囲.Rows(x)
↓ではないですか?
SumColor = SumColor + 1

  • 2013/10/23
  • やじゅ ◆ EGTCt1XI
  • [ URL ]
  • [ 編集 ]
>やじゅさん

それだと件数を数えるCountになりますよね?
これは値のSum合計させたいのでこれで問題ないです。

  • 2013/10/23
  • Isakat ◆ -
  • [ URL ]
  • [ 編集 ]
Re: 色付きセルのみを合計する [SumColor]

すみません、勘違いしてましたm(_ _)m

  • 2013/10/24
  • やじゅ ◆ -
  • [ URL ]
  • [ 編集 ]
Re: 色付きセルのみを合計する [SumColor]

コードをコピペしてみたのですが、うまくできません。
表の中の黄色のセルの合計を求めたいのですが、どうしたらいいのでしょうか。
実行ボタンを押すとマクロのダイアログボックスが出てきます。
回答宜しくお願い致します。

  • 2014/05/08
  • 舞花 ◆ XN1DqW2Y
  • [ URL ]
  • [ 編集 ]
コメント投稿フォーム
Name
Subject
Mail
URL
Comment

Password
Secret
管理者にだけ表示を許可する

Navigations, etc.

Navigations

ブログ記事を検索

SPONSORS

人気記事ランキング

ブログパーツ

メールフォーム

名前:
メール:
件名:
本文:

Tweet

最新記事