[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『色別の数値の合計』(のりお)
A B C D E 1 灰色2 緑色3 2 灰色4 黄色2 3 黄色1 4 緑色5 灰色4 緑色4 5 6 緑色3 灰色2 黄色7 7 8 黄色3 灰色2 9 緑色2 緑色2 10 11 灰色4 緑色7 灰色4 12 13 灰色1 黄色5 灰色5 14 緑色2 15 16 緑色3 黄色6 緑色3 17 灰色3 18 黄色5 19 緑色6 黄色8 20 黄色2 ・ ・ ・ 100 灰色4 緑色5 灰色とか黄色とかはセルパターンの色です。 A1からC100までにランダムに色違いのセルがあります。 色違いのセルにはそれぞれ数字が書かれています。 E1に灰色セルの数 E2に黄色セルの数 E3に緑色セルの数 E4に灰色セル内の数字の合計数 E5に黄色セル内の数字の合計数 E6に緑色セル内の数字の合計数 よろしくお願いします。
関数処理なら F1:H100 を作業領域に使って
1.F1を選択して名前定義 名前は、たとえば GetColor 参照範囲(R) に =GET.CELL(63+NOW()*0,A1) 2.F1に =GetColor これをF1:H100の範囲にフィルコピー
これで、A1:C100それぞれの色に対応したカラーインデックス番号が表示されるので、 あとはE列に =SUMIF($F$1:$H$100,●,$A$1:$C$100) とすれば合計になるし、COUNTIFを使えば個数になるね。
● は、合計したいセルのカラーインデックス番号
(ぶらっと)
マクロだとこんな感じかな ? 何色でも対応可能です。E〜F列に展開します。 Sub Test() Dim i&, j&, n&, m&, v, w, Co Dim D As Object Set D = CreateObject("scripting.dictionary") With Sheets("Sheet1") '適宜変更 ReDim w(1 To 20, 1 To 3) '展開用配列 For Each v In .Range("a1:c100") '検索範囲 Co = v.Interior.Color If Co <> xlNone Then If Not D.exists(Co) Then n = n + 1 D(Co) = n w(n, 3) = Co End If m = D(Co) w(m, 1) = w(m, 1) + 1 'Count w(m, 2) = w(m, 2) + v.Value 'Sum End If Next '展開処理 .Cells(1, "e").Resize(n, 2).Value = w For i = 1 To n .Cells(i, "e").Interior.Color = w(i, 3) Next End With Set D = Nothing End Sub (暇人)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.