- ベストアンサー
エクセルのデータ集計
エクセルのデータ集計で色づけした数字だけを集計する方法を教えてください。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
ユーザ定義関数でやります。 Public Function sumPaint(r As Range) Application.Volatile Dim x As Range Dim sum sum = 0 For Each x In r If x.Interior.ColorIndex >= 0 Then sum = sum + x.Value End If Next sumPaint = sum End Function ALT+F11で標準モジュールを挿入して貼り付けてからワークシートで使用して下さい。
その他の回答 (4)
- kym1
- ベストアンサー率0% (0/3)
>#3のご回答は、数字を集計するものではありません。 失礼しました。 集計はSUMIFでしてください。 例)=SUMIF(C:C,3,B:B) 赤字の合計です。 >適当なセル 適当な1行目のセル に訂正です。 >とても推奨できるものではありません。 理由は?HELPがないから?
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
>しかしここの回答者はマクロ関数しらんのか! GET.CELLについては、過去の回答でみたことはありますが、とても推奨できるものではありません。 #3のご回答は、数字を集計するものではありません。
- kym1
- ベストアンサー率0% (0/3)
4.0マクロ関数を使用します。 適当なセルを選択して、 挿入→名前→定義 名前 IRO ※何でもいいです。 参照範囲 =GET.CELL(24,Sheet2!$B1)+NOW()*0 C1 = IRO 下にフィルしてみてください。 B列のフォント色に応じて数字が変化します。 黒なら1、赤なら3というように。 あとはC列でCOUNTIF等で集計してください。 しかしここの回答者はマクロ関数しらんのか!
- imogasi
- ベストアンサー率27% (4737/17069)
時々同じ質問が載ります。しかし (1)関数にセルの文字の色やセルのパターン色を判別するものが無い。したがって関数では判別して分別集計が出来ません。 (2)したがって、色付けした基準(クライテリア)数値があるはずで、それに戻って、その数値の範囲等で、集計するより他ありません。 数値範囲だけでなく、人間が総合的に判断して色付けしたものは、お手上げです。 (3)VBAなら各セルのセルの色のインデックスコードを採れるので、分別して集計できます。 A1:H10が計数範囲の例として Sub test02() Dim cl As Range Dim s(50) For Each cl In Range("A1:H10") ci = cl.Interior.ColorIndex s(ci) = s(ci) + cl Next '---結果表示 For i = 1 To 50 If s(i) <> 0 Then MsgBox "ColorIndex " & i & " のセル合計は" & s(i) End If Next i End Sub のようになります。