dポイントプレゼントキャンペーン実施中!

エクセルの「条件付き組織」についてエクセルの「条件付き組織」について
年度末になって、成績処理をしようと思っています。現在B列からJ列まで素点(毎時の点数)が入っています。それぞれの重み付けを行うために、各列は異なった条件書式(パターン色つけ)で色分けしています。例えばB列は80点以上の色付け。C列は50点から75点などです。最終的にA列に重み付けのための得点を与えて合計点を自動的に計算することはできるでしょうか。A列は得点。BからJ列は各得点(条件の色つけがしてある)。K列にB列からJ列の(色つけしてあるセル×得点)をだしたいのです。ぐだぐだと書いて申し訳ありませんが、よろしくお願いします。要するに、「条件付き書式」で色つけした部分を認識し、その後に計算結果を出す方法ですが。今後、列をもっと増やす予定ですので自動計算がしたいと思っています。よろしくお願いします。

A 回答 (2件)

こんばんは!


関数でセルの色を判断して集計するものはないと思います。
仮に手作業でセルに色を付けている場合はVBAで可能ですが、
条件付書式でセルの色がついている場合、それを判断するとなると結構ややこしいと思います。
(簡単にできる方法があればごめんなさい。)

そこで一つの案ですが、VBAのコード内に条件付書式の条件を組み込む方法でやってみました。
↓の画像の色は条件付書式で設定して色付をしています。
B列の条件付書式は「80以上」で「黄色」・C~J列の条件付書式は「50~75の間」で「ベージュ」と設定しています。
↓のコードの場合、セルの色は全く関係なく条件分けしてその行の条件に一致するものをK列に合計しています。

あくまで一例のコードです。
画面左下にある操作したいSheet見出し上で右クリック → コードの表示 → VBE画面が出ますので、
↓のコードをコピー&ペーストしてマクロを実行してみてください。
(Alt+F8キー → マクロ → マクロ実行です)

Sub test() 'この行から
Dim i, j As Long
Dim vl As Variant
For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
For j = 2 To 10
If j = 2 Then
If Cells(i, j) >= 80 Then
vl = vl + Cells(i, j)
End If
ElseIf j >= 3 And j <= 75 Then
If Cells(i, j) >= 50 And Cells(i, j) <= 75 Then
vl = vl + Cells(i, j)
End If
End If
Next j
Cells(i, 11) = vl
vl = 0
Next i
End Sub 'この行まで

尚、最初に書いたようにC~J列の条件はすべて統一していますので、列ごとに条件が変わるのであれば
コード内を変更する必要があります。

以上、参考になれば良いのですが・・・m(__)m
「エクセルの「条件付き組織」について」の回答画像1
    • good
    • 0

No.1です!


前回のコードで誤りがありました。

ElseIf j >= 3 And j <= 75 Then

の行を

ElseIf j >= 3 And j <= 10 Then

に訂正してください。

何度も失礼しました。m(__)m
    • good
    • 0
この回答へのお礼

ご丁寧に訂正までいただきありがとうございました。

お礼日時:2011/02/20 15:47

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