[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『セルに色があるセルのみ計算したい』(きょうこ)
計算式で
=SUM(J3:J103)
とあるのですが、この中でセルに色がついたセルのみ計算する場合
どうしたらいいですか?
< 使用 Excel:Excel2010、使用 OS:Windows7 >
色の付け方にルールがあるなら、そのルールを使って SUMIFで計算されるといいと思います。 (コナミ) 2020/05/07(木) 16:55
ユーザー定義関数を作ることになりそうですが、 色が付いていたらどんな色でも足すんですか?
※後出しで条件が増えることが珍しくないので先にお尋ねしております。
(半平太) 2020/05/08(金) 15:15
色付きのセルを数える/合計する:Excel VBA入門 h ttp://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_color.html
(通行人) 2020/05/08(金) 17:39
1.後記マクロを標準モジュールに貼り付ける。
2.結果が必要なセルに下式を入力する。
=ColorSum(A1:B3)
’標準モジュールに貼り付けるマクロ
Function ColorSum(Scope As Range, Optional baseClr) As Double Dim r As Range Dim aVal As Double Dim S(1 To 2) As Double
Application.Volatile
If IsMissing(baseClr) Then baseClr = 16777215 '無色 Else If TypeName(baseClr) = "Range" Then baseClr = baseClr.Interior.Color End If End If
For Each r In Scope aVal = IIf(Application.IsNumber(r.Value), r.Value, 0)
If r.Interior.Color = baseClr Then S(1) = S(1) + aVal Else S(2) = S(2) + aVal End If Next r
If baseClr = 16777215 Then ColorSum = S(2) Else ColorSum = S(1) End If End Function
(半平太) 2020/05/08(金) 20:33
1)数式タブの名前の管理をクリックします。
2)新規作成ボタンを押します。
3)名前は任意で好きな名前を入力してください。ここでは「iro」としています。
4)参照範囲に=get.cell(63,B3)+now()*0と入力します。
5)セルC3に=iroと入力し下へコピーする。
6)色の番号が返りました。
7)なので、いつもの感じでsumif関数。
E3=SUMIF($C$3:$C$13,iro,$B$3:$B$13)
※保存する時はExcelマクロ有効Book(*.xlsm)で保存します。
|[B] |[C] |[D] |[E] [2] |数値|色番号|色 |合計 [3] | 10| 6|黄色| 100 [4] | 20| 0|水色| 200 [5] | 30| 6| | [6] | 40| 0| | [7] | 50| 0| | [8] | 60| 6| | [9] | 70| 0| | [10]| 80| 0| | [11]| 90| 33| | [12]| 100| 0| | [13]| 110| 33| |
B3.B5.B8は黄色、 B11.B13は水色で塗りつぶし
(KLY) 2020/05/08(金) 22:02
少し変更しました。
Function ColorSum(Scope As Range, Optional baseClr) As Double Dim r As Range Dim aVal As Double Dim S(1 To 2) As Double Dim WasMissing As Boolean
Application.Volatile
If IsMissing(baseClr) Then WasMissing = True baseClr = 16777215 '無色 Else If TypeName(baseClr) = "Range" Then baseClr = baseClr.Interior.Color End If End If
For Each r In Scope aVal = IIf(Application.IsNumber(r.Value), r.Value, 0)
If r.Interior.Color = baseClr Then S(1) = S(1) + aVal Else S(2) = S(2) + aVal End If Next r
If WasMissing Then ColorSum = S(2) Else ColorSum = S(1) End If End Function
(半平太) 2020/05/08(金) 22:07
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.