• ベストアンサー

塗りつぶしたセルをカウントする関数(エクセル)

エクセルを使っている者です。 エクセルを使って、文化祭のシフト表を作っているのですが、 その作業のなかで、セルを何色か使って塗りつぶし、色別に仕事内容を見やすくしました。(行:時間 列:人の名前) そこまではいいんですが、みな平等に仕事を割り当てるため、選択した範囲内で塗りつぶされたセルの個数を色別に数えたいのです。 どんな関数を使えばよいでしょうか? 塗りつぶされたセルを、しかも色別にカウントする、そんな関数はあるのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • ka_na_de
  • ベストアンサー率56% (162/286)
回答No.4

ユーザー定義関数を使った一例です。 <以下を標準モジュールに記入> Function IntColor(ByVal argRng As Range) As Integer   '指定したセル(第1引数)の塗りつぶし色を返す関数   Application.Volatile   IntColor = argRng.Cells(1, 1).Interior.ColorIndex End Function Function CountIntColor(ByVal argRng As Range, ByVal argIntColor As Integer) As Long   '指定した範囲(第1引数)で指定した塗りつぶし色(第2引数)のセル個数を返す関数   Dim myCell As Range   Application.Volatile   CountIntColor = 0   For Each myCell In argRng     If myCell.Interior.ColorIndex = argIntColor Then       CountIntColor = CountIntColor + 1     End If   Next myCell   Set myCell = Nothing End Function <使い方> A1:A10の範囲でA1と同じ塗りつぶし色のセルが何個あるか? =CountIntColor(A1:A20,IntColor(A1))

その他の回答 (3)

  • rivoisu
  • ベストアンサー率36% (97/264)
回答No.3

前の回答がちょっとつめたかったのかなぁと反省したので コードを提示します。 このコードをどこに書くか(コピペ)するか 対象範囲によりどこを修正するか 結果を表示する場所をどう変更するか は勉強してください。 もっと短くももっと汎用的にも書けるのですが 修正しやすく初歩的に書いたつもりです。 Option Explicit Option Base 1 Sub 色別件数() Dim i As Integer Dim j As Integer Dim k As Integer Dim l As Integer Dim 有無 As Boolean Dim x As Integer Dim 色(10) As Integer Dim 件数(10) As Integer Dim 色数 As Integer For i = 1 To 5 '1行目から5行目までの繰り返し For j = 1 To 4 '1列目から4列目までの繰り返し x = Cells(i, j).Interior.ColorIndex '対象のセルの色をxに代入 有無 = False 'その色が前にあったか検知するため変数 For k = 1 To 色数 '今までにその色が出てきたかを見つける If 色(k) = x Then 有無 = True l = k End If Next If 有無 = True Then 件数(l) = 件数(l) + 1 '見つかったときその色の件数に1加算 Else 色数 = 色数 + 1 '見つからなかったとき新しい色を追加 色(色数) = x 件数(色数) = 1 '件数を1にする End If Next Next '見つかった色数分セルに表示(11行、4列目から下に色数分件数表示) For i = 1 To 色数 Cells(i + 10, 4).Interior.ColorIndex = 色(i) Cells(i + 10, 4) = 件数(i) Next End Sub あとはよろしく

  • rivoisu
  • ベストアンサー率36% (97/264)
回答No.2

学生さんらしいので頑張って勉強しましょう。 VBAを使います。 やり方は 範囲内をなめまわします。for nextの入れ子 別のシートに色別テーブルを用意します。 なめまわしている中で色を色別テーブルにあるかを調べます あった時1を加算 ないとき色別テーブルに新しい色を追加して1とする

  • hige_082
  • ベストアンサー率50% (379/747)
回答No.1

セルの色を数える関数はありません 「セル 色 関数」でサイト内を検索してみて沢山でてきますので 理由と代替案がわかると思います

関連するQ&A

  • Excel 2007 マクロ セルの色のカウント

    Excel 2007 マクロ セルの色のカウント 表に複数の色がセルについています。 色がついているセルの隣の列に「1」を返したいです。 どのようなマクロになりますでしょうか。 色がついている列は1行でC列になります。 ご回答よろしくお願いします。

  • 色付きのセルのカウントの方法

    色付きのセルをカウントする方法はあるのでしょうか。 ご存知の方、ご指導お願い致します。 使用機器 Windows 8 Excel 2013 です。 下記のような表中、年齢が80歳になれば赤色(既に関数が入っていて)になります。 赤色のセルをカウントする関数がありましたら、ご指導お願い致します。 合計数を C7に求めたいのです。    A列 B列 C列 1行 NO 氏名 年齢 2行 1    あ    81 3行 2    い  79 4行 3   う   78 5行 4   え     82 6行 5   お    79 7行 合計

  • 関数で可視セルのデータ個数カウント

    Excel2002を使用しています。 オートフィルタで抽出したデータの個数を関数で カウントしたいのですが、可視セルのみをカウント 出来る関数はあるのでしょうか? 例えば   A 1 件数 2  2 3  1 4  3 5  1 6 関数 A6セルに何らかの関数を入れておき、 A列のオートフィルタを使って、1を抽出した時は A6に”2” 3を抽出した時はA6に”1”を表示させたいの です。 このように、可視セルのデータ個数のみを カウントする関数はありますでしょうか? フィルタを使わずにCOUNTIF関数でカウントする 方法、また、可視セルをコピー貼り付け後 カウントする方法は避け、あくまでフィルタで 抽出したデータの個数を瞬時にカウントしたいの です。 ご教授宜しくお願いします。

  • Excelの関数

    Excelで、範囲指定した列に文字"○"があり、なおかつ文字"○"があった行の範囲指定した別の列に文字"△"があるセルの個数カウントをしたいのですが、その場合の関数がわかりません。 わかりづらい質問で申し訳ございませんが教えてください。 よろしくお願いいたします。

  • Excel関数で範囲指定し重複以外の値のカウント

    Excelの関数の使い方で教えていただけないかと思い、投稿しました。 お手数ですが、よろしくお願いします。 ある列の中で、限られた値の行を範囲として、別の列の値を調べて、カウントしたいと思っています。 カウントする値は、重複を除いた値の個数をカウントしたいと思います。 例えば、A列の1~100行までの範囲の中で、A列の101行目に入っている値である文字列の”鈴木”と同じ値がある行のB列の値をカウントしたいと思います。 そのB列のカウントを行う場合、重複する値があれば、1とカウントします。 以上の関数をB列の101行目に記載するとすれば、どのような関数になるのか教えていただければ幸いです。よろしくお願いいたします。

  • エクセル関数で {=TABLE(,セル番地)} って?!

    よそから来たエクセルのデータなのですが、150行程度16列の表です。 この表に使われている関数がこれまで見たことも聞いたこともなく、関数のヘルプにもありません。 表中のどのセルも、 {=TABLE(,セル番地)} という式がはいっていて、表示される数値は違うのですが、セル番地はみな同じなんです。 1.これはどのような意味でしょうか? 2.配列関数のようなのですがCtrl+Shiftでは確定できず、さわったセルが元に戻せなくなってしまいました!「式が正しくない」とメッセージが出て、終了もできず、タスクマネジャーでエクセルを強制終了しなくてはならなくなりました。これはCtrl+Shiftでは確定でききないのでしょうか? お助けください。 ( ̄∇ ̄; ?

  • 特定の文字列を含むセルの個数をカウントしたい

    こんにちは。 現在、シフト表作りを任されているのですが、特定の文字列(個人名)を含むセルの個数をカウントして、表内のコマ数をカウントしたいと考えています。 表の名前は、セルの名前登録をしてありますので、ここでは仮に"表"とします。 特定個人の名前は、"名前"とします。 この条件下で、上記を行うにはどのようにすればよいでしょうか? ご助言お願いします。

  • エクセル 塗りつぶししたセルの個数をカウントしたい

    表の集計で、【セルの色を塗りつぶして区別したデータの個数】を、カウントする方法を教えて下さい。 事例ですが、飲食店の月間の宴会データ作成で、売上・客数・組数など集計表に数値で表示されているものは、SUM、COUNT関数で求めています。 質問は、【送迎付きの宴会】データがあり、集計表に数値ではなく【セルの塗りつぶし】で記録されています。目視で数えるのがめんどくさいため、この塗りつぶしの個数をカウントする良い方法がありましたら教えて下さい。

  • 色がついているセルのみを数える

    こんにちは。表題の件で、色がついているセルをカウント(COUNT関数)する方法、関数が見つかりませんので教えていただけたらと思います。  通常のものにはカウントせず、ただ色がついた行のセルのみカウントしたいと考えています。  それと条件がいくつかあります。  I:そのアイテムについてその日1日ごとの集計をとりたい(例えばj列にその日付が入力されているとします)  II:ある列(仮にH列とします)に0と入力されたものは色がついていてもカウントしないという条件です。  III:0と入力された行のデータの中で、別のセルに「○○」という文字があったら別の場所(仮にシート2とします)に1カウントする。  ××だったらシート3に。□□だったらシート4に1カウントする。    よろしくおねがいいたします。

  • エクセルで複数の条件に合うセルをカウントするには

    こんにちは。 エクセルについて質問です。 ある集計をやっているのですが、カウントがうまくいきません。 7/10(白) 7/20(黄) 7/10(黄)  *()はセルの色 簡単に書くと上の表のようなものを集計するのですが、「セルの色=黄色かつ日付=7/10」というセルの数をカウントしたいのです。 指定した色のついたセルをカウントする関数は、下のURLの質問を見て作りました。 どのような関数を組み合わせればできるでしょうか…。 わかりにくい質問かもしれませんがよろしくお願いします。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=59571

専門家に質問してみよう