• 締切済み

【エクセル】赤い数字と黒い数字のそれぞれの合計

下記の様に数字があり、A2、A4の数字が手動で赤い文字に、A1、A3、A5は黒い数字のままにしてある場合、 黒い数字の合計をA6に、赤い数字の合計をA7に集計するにはどうやったらできますか? A 1 55 2 45 3 35 4 25 5 15 6 □ 7 ■

みんなの回答

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

本筋は赤い文字色をつけた条件(値が何々より大きいなど)に戻って、その条件を使って=SUMIF()などで計算すべきでしょう。なぜなら関数は文字色を判別するものはありません。赤字が、主観的や総合的評価などによるものの 場合はお手上げですが。 Cell("color",A1)と言うものがありますが、使えないようです。 あとはVBAを使って、ユーザー関数を作れば出来そうです。 (テスト済み) ツール-マクロ-VBE-(VBE画面になって)挿入-標準モジュールででるVBEコード画面に下記をコピペ。 Function coloradd(a) Dim cl As Range s = 0 For Each cl In a If cl.Font.ColorIndex = 3 Then s = s + cl End If Next coloradd = s End Function ワークシート上で、答えを出したいセルに =coloradd(A1:A5) のように入れる。 A1:A5は連続した長方形のセルに限ります。A1:A5,C1:C5 などは不可能。ついでに、=sumif()の場合も、=countif()の場合もなぜか不可能。 答えの数字も赤字にしたかったが、Function内からは不可能(VBAで制限している)。 黒字分は全体から、赤字分を引けば良い。

  • shiga_3
  • ベストアンサー率64% (978/1526)
回答No.1

作業列を使う方法ですが、 1)B1を選択、メニューから挿入→名前→定義を選択(またはCtrl + F3)、適当に名前(例えば font )と入力し、参照範囲に  =GET.CELL(24,A1)+NOW()*0 と入力→OK。(表示された数字が文字の色番号です。0は自動選択の場合、1が表示されたら黒、3が赤です) 2)B1に =IF(A1="","",font) と入力しB5までコピー。 3)A6に=SUMIF(B1:B5,"<=1",A1:A5)、A7に=SUMIF(B1:B5,"=3",A1:A5)と入力。 以上で黒(または自動選択)と赤、それぞれの合計が出ます。 ただし注意が必要なのは、A列の文字が変更されても再計算が行われるまでB列の色番号は変更されないということです。適当なセルをダブルクリックしてEnterキーを押すか、F9キーを押すと再計算されます。