重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

EXCELのリスト上、退会した人を赤い文字で表示しています。
現在の有効団員人数をCOUNTするために、
赤字で書かれている人を除いて人数をCOUNTする
やりかたを教えてください。

A 回答 (7件)

赤い文字の「赤い」はフォントの書式です。


質問者は、関数でやれるのでは、と思っているでしょうが、関数はセルの「値」を元に、数えたり計算したりするものです。書式を判断して、はできないのは原理的なことです(*)。
ただ既回答にある旧いマクロは、無理して使えるといえば使えるものです。
VBAで色コードを返す関数は中身1行で作れるので、それがわかる人には、突破できます。アドインなど紹介されていますが、別のメリットもあるが、普通はそこまでしなくてもというところです。
なお書式関係はエクセル2007で大幅改良されたが、この件はそのままで、原則(*)を崩さなかったようです。
ーー
WEBで例えばGoogleで「エクセル 色 カウント」とれて照会すれば
、いかにたくさん時事があるか、ここの回答のタイプは全て出てくるでしょう。FAQです。
    • good
    • 0

一時的に取得できるだけで良いなら簡単です。



「書式の検索」で赤字セルの数を取得できます。
総数から赤字セル数を引き算すればお求めの数字です。
    • good
    • 0

通常のワークシート関数ではフォントの色を取得できません。

ですからユーザ定義関数(マクロ)を利用した方法を説明します。

以下のマクロは指定したセルの色番号を取得するものです。通常赤色は3ですので、色番号が3のセルを数えれば退会した人数がわかります。
「マクロは苦手…」かもしれませんが、下に書いた画面に貼り付けるだけですので、試すだけ試してみてください。

マクロはALT+F11でVBE画面を開き、左上のVBAprojectの「該当ブック名右クリック」→「挿入」→「標準モジュール」で開く画面に貼り付けます。VBE画面を閉じてワークシート画面に戻ったら
 =FCidx(A1)
のように式を入れてください。するとA1セルの文字の色番号を返します。(「自動」のときは0を返すようにしています)

Function FCidx(ByVal trg As Range) As Integer
 If trg.Font.ColorIndex = xlAutomatic Then
  FCidx = 0
 Else
  FCidx = trg.Font.ColorIndex
 End If
End Function

ただし文字を先に入力して後からフォントの色を変更した場合、関数の結果は自動的に再計算されません。その場合はALT+CTRL+F9で強制再計算させる必要があります。
    • good
    • 0

下記のリンクに色つきセルの計算の手法が載ってます。



GET.CELLを使う事になるので、少々運用は難しいですが、理解できれば
使い道が広がります。

マクロ関数
http://www.geocities.jp/chiquilin_site/data/0508 …
    • good
    • 0

 


No2です。
式を書き忘れ。

退会の文字が入ってるのが、A2:A55 だったら

  =COUNTIF(A2:A55,"<>退会")
 
とか。
 

 
    • good
    • 0

>退会した人を赤い文字で表示しています



そういった表には、退会を表す為に、
「退会日」や「登録区分」(新規とか退会とか入力)などの項目を設け
その上で条件付書式を使って文字に色を付けるのが一般的だと思います。
そうすれば、質問の件は簡単に解決できるし、退会に関する集計もできますよね。
 
    • good
    • 0

文字色、セルパターン色を判断する関数が組み込まれていません。


ただ、下記のサイトの
www.excel.studio-kazu.jp/DL/UFClr/UFClr.html
COLOR関数をアドインで追加すれば、可能です。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!