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

教えてください。
エクセルでA列からE列まであり、それが20行あります。その内、B列のフォントの色が
赤だけのC列の数字を集計したいのですが、どのような式にしたら良いのでしょうか?
どなたか教えて頂けると助かります。
よろしくお願いします。

A 回答 (4件)

こんにちは!



>B列のフォントの色が・・・
とは条件付き書式が設定してあるのでしょうか?
それとも手動でフォント色を「赤」にしているのでしょうか?

① 条件付き書式の場合だと
SUMIF関数で対応出来ませんか?
=SUMIF("条件付き書式の対象列","フォント色が「赤」の条件",C:C)

といった感じで・・・

② 手動で色付けされている場合はVBAになりますが、一例です。

Sub Sample1()
 Dim c As Range, myVal
  For Each c In Range("B1:B20")
   If IsNumeric(c.Offset(, 1)) And c.DisplayFormat.Font.ColorIndex = 3 Then
    myVal = myVal + c.Offset(, 1)
   End If
  Next c
   MsgBox myVal
End Sub

こんな感じです。m(_ _)m
    • good
    • 0

No.2です。



フォント色を変更しても再計算されない件、No.2で示した方法よりも少し手間が少ない対処法がありました。
Alt+Ctrl+F9を押して強制的にSheetを更新すればよいです。
    • good
    • 1

フォントの色を取得する関数はないのでユーザー定義関数を作り、それを使って計算するやり方を紹介します。


データの配置等は添付図参照です。

◆手順
1.以下のコードを標準モジュールに登録します。
Function FontColor(myCell As Range) As Integer
FontColor = myCell.Font.ColorIndex
End Function

2.F列を作業列として、F2セルに『=FontColor(B2)』と入力して下方向にコピペします。フォントの色を取得するユーザー関数。
3.G1セルに、『=SUMIF(F2:F21,3,C2:C21)』と入力します。F列が3のときのC列の合計値を計算、これが答え。

※注意:B列のフォント色のみを変更した場合、再計算されません。その際はF2セルをコピーして下方向に貼付けてください。
これはエクセルの仕様です。セルの値が変更されていないので再計算の対象にならないため。再計算したらCPU負荷が増えて処理待ち時間が長くなるだけです。
「教えてください。 エクセルでA列からE列」の回答画像2
    • good
    • 0

添付図参照


C22: =SUBTOTAL(9,C2:C21)
「教えてください。 エクセルでA列からE列」の回答画像1
    • good
    • 1
この回答へのお礼

とっても丁寧に教えて頂きましてありがとうございました。

お礼日時:2019/06/30 19:03

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