アプリ版:「スタンプのみでお礼する」機能のリリースについて

EXCELの計算式で、「文字色が同じ箇所だけ」または「セルの色が同じ箇所だけ」を合計することはできるのでしょうか?

A 回答 (2件)

ユーザ定義関数を使用すれば可能です。

まず以下のマクロをALT+F11でVBE画面を開き、左上のVBA Projectでシート名を右クリックし「挿入」→「標準モジュール」で表示される画面に貼り付けて下さい。

背景色で集計する方法は、ワークシート画面に戻り
=Csum(集計する範囲,集計したい背景色のセル)
と入力します。  例 =Csum(B1:B10,A1)
二番目のアドレスのセルは集計したい背景色で塗っておいてください(色を色番号で指定する方法より、実際の色を塗って指定する方が簡単だと思いますので…)

文字色で集計する場合は
=Fsum(集計する範囲,集計したい背景色のセル)
です。これも二番目のセルの文字色と同じ色の数値を集計します

なお制限事項が2つあります
1)一番目のセル範囲と、二番目のセル範囲は重ならないこと
2)数字を先に入れて色(背景、文字)を後で変えた場合は合計値は自動で変化しません。この場合はALT+Ctlr+F9で強制再計算させる必要があります。(数値を後で変更した場合はOK)

Function Csum(ByVal rng, trg As Range) As Double
Dim r As Range
For Each r In rng
If r.Interior.ColorIndex = trg.Cells(1, 1).Interior.ColorIndex Then
If IsNumeric(r.Value) Then
Csum = Csum + r.Value
End If
End If
Next r
End Function

Function Fsum(ByVal rng, trg As Range) As Double
Dim r As Range
For Each r In rng
If r.Font.ColorIndex = trg.Cells(1, 1).Font.ColorIndex Then
If IsNumeric(r.Value) Then
Fsum = Fsum + r.Value
End If
End If
Next r
End Function
    • good
    • 0

セルの色での合計


(1)条件付き書式などでは、その条件を、ワリ出して、その条件で
SUMIFやSUMPRODUCT関数で式を組み立てる。
(2)VBAでColorIndexを返すユーザー定義関数を作り
それを利用して、文字色を条件にする。
(3)VBAで初めから終わりまで処理する。
(4)旧の関数を使う、エクセル通好みの、良くある裏技
http://detail.chiebukuro.yahoo.co.jp/qa/question …
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!