8

別のデータベースから Excel にエクスポートされた名前のリストがあります。関心のあるリスト内の名前は、赤いフォントで強調表示されます。それを数える方法が欲しいです。つまり、John Smith は列に合計 5 回表示されますが、5 回のうち 3 回、彼の名前が赤いフォントで強調表示されます。それで、彼の名前が赤く表示される回数を確認したいと思います。

彼の名前のすべてのインスタンスを検索する方法を知っています 例 =COUNTIF(A1:A100,"John Smith ")

これを使用して、ワークシート内の赤 (=SumRed) (カラー インデックスが指定されると) であるすべての値をカウントする VB 関数の作成にも役立ちました。

Function SumRed(MyRange As Range)
    SumRed = 0
For Each cell In MyRange
    If cell.Font.Color = 255 Then
        SumRed = SumRed + cell.Value
    End If
Next cell
End Function

2 つのカウント条件を組み合わせる方法が見つかりません。どんな助けでも大歓迎です!

4

3 に答える 3

18

これには VBA は必要ありませんが、VBA ソリューションが必要な場合は、他の 2 つの回答のいずれかを使用できます。:)

Excel の数式を使用して、セルのフォントの色を見つけることができます。この例を参照してください。

XL4 マクロを使用します。

  1. 名前マネージャーを開く
  2. 名前を付けます。言うFontColor
  3. この数式を参照先に入力し=GET.CELL(24,OFFSET(INDIRECT("RC",FALSE),0,-1))、[OK] をクリックします。

ここに画像の説明を入力

式の説明

構文は

GET.CELL(type_num, reference)

Type_num is a number that specifies what type of cell information you want.
reference is the cell reference

上記の式では、数値24はセル内の最初の文字のフォントの色を 1 から 56 の範囲の数値として示します。フォントの色が自動の場合は 0 を返します。したがって、欠点があります。フォントの色全体が赤であることを確認してください。64 を使用することもできましたが、それは適切に機能していません。

OFFSET(INDIRECT("RC",FALSE),0,-1)左のすぐ隣のセルを参照します。

この数式をセルに入力して=IF(AND(Fontcolor=3,B1="John Smith"),1,0)コピーします。

:式は、テキストを含むセルの右側に入力する必要があります。

スクリーンショット

ここに画像の説明を入力

編集 (2013 年 10 月 12 日)

特定の背景色のセルをカウントするには、このリンクを参照しください

于 2013-04-08T20:41:20.840 に答える
2

私はあなたがほとんどそこにいると思いますが、これは別の機能に値します @ユーザーはオチに私を賭けます:(

Function CoundRedAndText(MyRange As Range, Mytext as string) as long
    CoundRedAndText = 0
    For Each cell In MyRange
        If cell.Font.Color = 255 and cell.value like MyText Then
            CoundRedAndText = CoundRedAndText + 1 'you had cell.value but dont know why?
        End If
    Next cell
End Function

使用法、=CountRedAndText(A1:A25, "John Smith")

于 2013-04-08T19:44:26.133 に答える