• ベストアンサー

EXCELの計算式で.

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

質問者が選んだベストアンサー

  • ベストアンサー
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.1

ユーザ定義関数を使用すれば可能です。まず以下のマクロを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

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

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

関連するQ&A