- ベストアンサー
excel 特定の色のセルだけ
特定の色のセルを選び出して、そこに入力されている数量を合計する方法を教えて下さい。 販売数の推移集計表を作っています。 A1は9/1分、A2は9/2分・・・というようにA20まで、販売数を入力しています。途中で値下げをするので、値段ごとにセルの色を変えていますが、この色別の販売数を計算したいと思っています。 例えば、A1からA20のうち黄色のセルに入っている数の合計、というのは計算できますか? どうすればよいか教えて下さい。 よろしくお願い致します。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。maruru01です。 条件付き書式ではなく、個々に色を付けている場合は、通常の操作・関数では出来ません。 以下のページを参考にして下さい。 どこか作業列に色番号を表示して、それを元に集計(COUNTIFやSUMIF)するものです。 なお、バージョンは2000でもOKです。 http://www.moreexcellent.com/excel/tips/color.htm
その他の回答 (3)
他の方も書いておられるように、ワークシート関数ではセルの背景色を扱えないため、関数レベルでは対応できない問題です。 が、VBAを使えば可能です。 まず、集計に用いるシートのシート名の部分を右クリックし、「コードの表示」を選びます。するとVisualBasicEditorが開きますので、右側の白い空欄に点線内のマクロをコピー⇒貼り付けしてください。 '------------------------------------------------- Private Sub Worksheet_Change(ByVal Target As Range) Dim C As Variant ia = 0 cl = ActiveSheet.Range("B1").Interior.ColorIndex ' ←B1セルの色番号を取得 For Each C In ActiveSheet.Range("A1:A20") ' ←ここに集計範囲を指定 If C.Interior.ColorIndex = cl Then ia = ia + C.Value End If Next C ActiveSheet.Range("B1").Value = ia ' ←集計結果をB1セルに表示 End Sub '------------------------------------------------- 貼り付けが済んだら、VisualBasicEditorを閉じて、ワークシートを保存してください。これで準備完了です。 使用方法ですが、B1セルに任意の背景色を設定すると、A1:A20の範囲で、同じ背景色のセルの値を合計して表示します。数値を変更した場合は自動で集計値も変更されますが、背景色を変更した場合は空白セルでDelキーを押すなどして再計算させる必要があります。 なお、マクロ内の「A1:A20」「B1」は適宜変更してください。
お礼
とてもご丁寧にありがとうございました。 やってみました。できました! すごいですね、ちょっと感動しました。 しかし、実はデータは100行分くらいあって、それぞれを同様に計算したいんです。質問の仕方が悪かったですね。 ですので、この方法はちょっと今回は使えないみたいです。 今後、別の表を作るときに活かさせていただこうと思います。ありがとうございました。 この欄を借りてみなさんにもう一度お礼申し上げます。 短時間にご親切で分かりやすいご回答ありがとうございました。とても助かりました。
- imogasi
- ベストアンサー率27% (4737/17069)
(1)出来ますか? A.関数で 多分こちらを思っている? B.VBAで 出来ます (2)(1)のAの不能理由 関数は「書式」の色を捉えられない。 関数は「値」を判別したり加工するものです。 (3)色を付けた時の、量的制約 (例えば10以上20未満は赤色)が判ってお れば、関数式の中に組みこんで、「10以上20未満 のセルの合計を出す」と言う問題に置き換わります。 =SUMIF(A1:A7,">=10",A1:A7)-SUMIF(A1:A7,">=20",A1:A7) (4)VBAも設定した色コードが判っておれば、 If Cells(i, "B").Interior.ColorIndex = 6 Then (加算) End If のようにプログラムを組めば出来ます。
お礼
ご指摘のように関数で解決できないかと思っておりました。(VBAまで考えが及ばなかったので…) 教えていただいたことは今後に活かしたいと思います。 ご回答ありがとうございました。
- marbin
- ベストアンサー率27% (636/2290)
条件付き書式でセルに色づけし、 そのセルの値によって合計、とした ほうがやりやすいと思います。 回答でなくすみません。
補足
アドバイスありがとうございます。 前任者が質問に書いた形で表を作っていまして、データの蓄積がその表にしかないので、何とか利用できないかと悩んでおります。商品ごとに一行で作っているので、実はかなりの数のデータなのでそのまま使えたら嬉しいのです。
お礼
ありがとうございました。 元のワークシートをコピーして教えていただいた方法で色番号を表示させ、SUMIFを使って集計できました。