• ベストアンサー

エクセルで文字色がついているセル数をカウント

エクセル初心者です。 エクセルセルに 佐藤 鈴木 青山 渡辺 と入力されてあって佐藤と鈴木の文字の色が青だった場合文字色(青)がついているセルをカウントし,あるセルに2と表示することはできるのでしょうか。条件付書式や検索と思いましたがわかりません。よろしくお願いします。

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

  • ベストアンサー
回答No.3

 質問者様お使いのエクセルのバージョンが不明なので何がアレですが いちおう 2000 で作成した経験からアドバイスさせていただきます。 >文字色(青)がついているセルをカウントし, 1 残念ながらマクロを使わないと,ご希望のことは難しいようです。   以下に手順を記しますので参考にしてください。 (1) [ツール]-[マクロ]-[VisualBasicEditor](またはAlt + F11)で  VBE画面にします。 (2) VBE画面上で[挿入]-[標準モジュール]を選択します。  するとコードウィンドウが出ますので、以下のコードを記します。  (コピー&ペーストでもOK) ---------------------------------------------------------------- Function SpecialCell(targetRange As Range, _ intColor As Integer) As Integer '赤は3,緑は4,青は5,黄は6 Dim myCell As Range For Each myCell In targetRange If myCell.Font.ColorIndex = intColor _ Or myCell.Interior.ColorIndex = intColor Then SpecialCell = SpecialCell + 1 End If Next End Function ---------------------------------------------------------------- (3) 元のワークシートに戻って、カウント結果を表示させたいセルに、 赤字のカウントは =SpecialCell(A1:E5,3) 青字のカウントは =SpecialCell(A1:E5,5) 黄字のカウントは =SpecialCell(A1:E5,6)  などとすればOKです。  ただし、フォント色が黄でセル色が青などというのは、どちらにも カウントされてしまうので注意が必要です。  ☆参考:ブックの標準カラーパレットのインデックス番号   (VBエディタのヘルプにて「ColorIndex」を検索、参照した)   1 黒   2 白   3 赤   4 黄(薄)緑 5 青   6 黄   7 桃色  8 水色  9 茶色   10 緑   11 紺    (濃い緑) 以下 ~ 56 まであるようです。 2 別解(参考) ----------------------------------------------------------- Function ColoredCell(rngArg As Range, rngSample As Range) As Long For Each c In rngArg If c.Interior.ColorIndex = rngSample.Interior.ColorIndex Then ColoredCell = ColoredCell + 1 End If Next End Function ----------------------------------------------------------------  使う際には =ColoredCell(A1:A10,A5) といったように、第1引数は 調べたい範囲、第2引数には指定する色の(サンプル)セルを当てる。  ※SUMIF 関数の併用も可 2 実は、マクロを使わない方法があります。   5~6年程前に、何処かで教わった記憶があります。   色を判定する式(=GET.CELL(**,**))をブックに登録、判定結果を  表示したいセルに、登録した式の定義名で記述する。   その判定結果を SUMIF や COUNTIF 関数の引数として再利用する。  以下は、その手順です。  (1) 色を判定する式を登録    メニューバー「挿入」→「名前」→「定義」名前の定義画面にて   「参照範囲」欄に    「=GET.CELL(検査の種類を指定する番号,判定したいセル番地)」    名前欄に式の名前を(「文字の色」や「セルの色」等)付けて   「追加」→「OK」で登録完了 ☆検査の種類を指定する番号とは? 20→フォントは太字か否か?を判定 24→文字フォントの色を判定 63→セルの塗りつぶし色を判定    なお、後から書式を変更しても結果が自動的には更新されないので、 NOW 関数を組み込み「F9」キーで更新させた方が良いようです。  例「=GET.CELL(**,**)+NOW()*0」(0を足している為、値に影響なし)  (2) 判定した結果を表示させる    判定結果を表示したいセルに「=定義した名前」という式を入力   すると色の種類すなわち色の番号を判定結果として表示してくれる    色の番号(Excel のヘルプでカラーインデックスを参照できる)    例☆黒字(無指定)=>0      赤      =>3      青      =>5      緑      =>10      薄緑     =>4      ※その他も、実際に試してみれば結果は分かるはず  (3) 判定した結果を、SUMIF や COUNTIF関数の引数として利用する。  言葉で説明するのは非常に難しくこれで理解していただけるかどうか 自信がありませんが、この、色の判定式を登録してしまうという方法は Excel97 から Excel2002までのバージョンで活用できることは確認済み です。 もちろんこれも SUMIF 関数との併用(数字として計算する)が 可能です。  実際のサンプルファイルを見ていただければいいのですが、なかなか 良い方法が思いつきません。  Excel2007 で読み込んでも反映されましたが、2007でどう作成するの かは、残念ながら 2007 での作成経験がないので説明できません。  ところで、この OkWave には Office 系ソフト専門のカテゴリもあり ます。 そっちの方が詳しい人が多いと思うので、今後は使用ソフトの バージョンも併記してそちらで質問されるようにした方が解決が速いと 思われます。 http://okwave.jp/207/218/c232.html  なお、老婆心ながら、その場合の複数カテゴリにわたる(多重投稿) マルチポストには気をつけましょう。

参考URL:
http://miyahorinn.fc2web.com/faq/faq030.html,http://hp.vector.co.jp/authors/VA016119/hajimete/udf1.html
rocky6
質問者

お礼

丁寧なご回答ありがとうございます。 参考にさせていただきます。 返信が遅れて申し訳ありませんでした。

その他の回答 (2)

回答No.2

普通の数式ではできません。 Alt+F11でマクロを追加してください。 こんな感じで↓ Function COUNTCOLOR(data As Range, color As Integer) Application.Volatile Count = 0 For Each c In data If c.Font.ColorIndex = color Then Count = Count + 1 End If Next c COUNTCOLOR = Count End Function それで使うときは =COUNTCOLOR(A:A,1) という感じで使ってください。上記の例では1番目の引数で範囲を、2番目の引数で色インデックスを指定します。

rocky6
質問者

お礼

ありがとうございました。

  • Trick--o--
  • ベストアンサー率20% (413/2034)
回答No.1

書式を参照する関数はありませんので、VBA(マクロ)を使うことになります セルA1の文字色は Range("A1").Font.ColorIndex で取得できます。 ColorIndexは色番号で、青は5、赤は3などです。(URI参照) 青を数えるユーザー定義関数 CountBlue(範囲) は Function CountBlue(範囲 As Range)  cnt = 0  For Each r In 範囲   If r.Font.ColorIndex = 5 Then    cnt = cnt + 1   End If  Next  CounrBlue = cnt End Function という風になります。 これをVBEで作成して、セルに =CountBlue(A1:A5) などというように書けば、文字が青のものを数えてくれます

参考URL:
http://www.relief.jp/itnote/archives/000482.php
rocky6
質問者

お礼

ありがとうございました。

関連するQ&A

  • EXCELで、色つきセルだけカウントしたい

    エクセルで「条件付書式」を使って、セルに色がつけてあります。 その色が付いたものだけを、カウントして、件数を表示させたいのです。色つきセルが、3個なら、別のセルに、3というぐあいに…可能でしょうか?

  • エクセル 色が変わっていないセルをカウントしたい

    よろしくお願いします。 エクセルで、条件付書式を設定した大きな表があるのですが、 その表で、条件に該当する物に色をつけました。 しかし、その色がついていない部分をカウントしたいのですが 簡単にカウントできる方法はないでしょうか。 よろしくお願いいたします。

  • エクセルでセルに色を付ける(多条件)

    質問を検索していてある程度はわかったのですが、 セルに条件によって色を付けるやり方は条件付書式でできるみたいですが、条件が3つまでしか指定できません。 4つ以上ある場合はどうすればよいでしょうか。 例えば、A1セルにはAからEまでの文字が入力されます。 入力された文字によってB1セルをAなら赤、Bなら青といった具合に違う色を表示させたいのです。 エクセル2000です。 宜しくお願いします。

  • 【Excel】 色の一致するセル数をカウントしたい。

    こんにちは。 ある条件にあてはまるセルに、書式でセルの色を設定してあります。 いくつかの条件で色分けしてあるのですが、これらのセルの色が「赤」は幾つ、「青」は幾つというふうに、 カウントすることは出来るのでしょうか。 よろしくお願いいたします。

  • EXCELで文字を入力すると・・・

    EXCELで文字を入力すると・・・ セルに色がつきます。 条件付書式の設定をしているわけではありません。 原因がよくわからないため、ご存知の方がおられましたら 教えてください。

  • エクセル 色つきセルのみの表示

    こんにちは いつもお世話になっています。 エクセル2003を使っています。 A列に文字データがあります。条件付書式で重複セルに色をつけてあります。 この色をつけたセルだけを表示させる方法を教えてください。 実際に色を付けてあれば検索で処理できるようですが、条件付書式でのやり方をネット上で探せませんでした。よろしくお願いします。

  • Excelで隣のセルを参照して色分け

    こんにちは。 Excelの表で、例えば会社名がA列のセルにあって、 B列に営業担当が入力されているとします。 A列    B列 ◎会社  山田 △会社  鈴木 A列の会社名のセルををB列の担当を参照して、山田なら黄色、鈴木なら青 の様に書式設定をしたいのですが、どの様に設定したら良いでしょうか? 条件付書式だとそのセルのみを参照ですので、隣のセルを参照してと いう設定は出来ますか? よろしくお願いします。

  • エクセル 条件付書式について

    エクセルの条件付書式について、お尋ねします。 A1のセルには、背景と同じ色で文字が入力されていて、そこに文字を上書きすると、A1のセルの文字の色が黒に変更されるようにしました。 その後B1のセルに文字を入力すると、A1からE1までのセルの背景がグレーになるようにしたかったのですが、A1のセルだけが、塗りつぶされませんでした。 説明が十分かどうかわからないのですが、質問としては、このようなことが、条件付書式で可能かどうか、可能ならば、その方法を教えていただけますでしょうか。 どうぞよろしくお願いいたします。

  • Excelの条件付き書式について

    Excelの条件付書式について教えてください。 次のようなことをしたいです。 (1)10個のセルに次のような条件付書式を設定します。  ・条件1:セルの値が5以上だったらセルの塗りつぶし(パターン)を青色にする。  ・条件2:セルの値が5未満だったらセルの塗りつぶし(パターン)を赤色にする。 (2)別の1つのセルで上の10個のセルを監視して  すべてのセルが青色だったら"PASS"と表示する。  ひとつでも赤色のセルがあったら"FAIL"と表示する。 VBAを使用して、条件付書式が設定されたセルを参照し、 どちらの条件付書式が適用されているのか調べられるのなら、 それでもかまいません。 条件付書式でセルの色(パターン)を設定した場合、 セルの.Interior.ColorIndex 及び PatternColorを参照しても、 塗りつぶしはされてないという扱いになっているようです。 なにか方法があるでしょうか?

  • [Excel]配色セル数のカウント

    ↓条件付き書式ルールで、緑色に配色されたセルが1000以上ございます。 まず、 =AND(C$1=$A2,C2>=2)に配色 緑色で書式設定 その後、単純に緑色セル数をカウントしようと、検索すると0セルが見つかったと メッセージがリターンされます。 検索する文字列はブランクで、プレビューを緑色にしています。 ColorCount()で範囲、緑色セルで計算してもエラーになります。 再度、マニュアルで対象セルを緑色すると、直したセルはカウントアップします 何か方法ございますでしょうか?