[[20130527045010]] 『色別の数値の合計』(のりお) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『色別の数値の合計』(のりお)
	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.