Rogerは、セルの背景色を「if」基準として使用してCOUNTIF関数を使用する方法があるかどうか疑問に思っています。彼はhttp://calendarcorner.net/[calendar]を持っており、紫やその他の色でハイライトした日数を数えたいと考えています。

簡単に言うと、COUNTIFを使用して背景色やフォーマットを確認することはできません。値のテストのみが可能です。紫色のセルの数を1回または2回だけ把握する必要がある場合は、Excelの検索と置換機能を使用して把握できます。次の手順に従ってください:

。カレンダーを構成するセルを選択します。

。 Ctrl + Fを押します。 Excelは、[検索と置換]ダイアログボックスの[検索]タブを表示します。

。利用可能な場合は、[オプション]ボタンをクリックします。 Excelはダイアログボックスを展開します。 (図1を参照)

。 [検索する文字列]ボックスが空であることを確認してください。

。 [フォーマット]ボタンをクリックします。 Excelに[形式の検索]ダイアログボックスが表示されます。

(図2を参照)

。ダイアログボックスの下部にある[セルからフォーマットを選択]ボタンをクリックします。 [フォーマットの検索]ダイアログボックスが消え、マウスポインタがプラス記号に変わり、その横にスポイトが表示されます。

。探したいものと同じようにフォーマットされたセルをクリックします。 (つまり、紫色のセルをクリックします。)マウスポインタが通常の状態に戻ります。

。 [すべて検索]をクリックします。 [検索と置換]ダイアログボックスが展開され、形式に一致するすべてのセルが一覧表示され、ダイアログボックスの下部にセルの数が表示されます。

。 [閉じる]をクリックして、[検索と置換]ダイアログボックスを閉じます。

もちろん、1つまたは2つ以上の色を数えたい場合、これらの手順は面倒になる可能性があります。または、あるタイプの別の計算で使用できるように、カウントが必要な場合もあります。このような場合は、セルを調べてカウントを返すユーザー定義関数を作成することをお勧めします。そのようなマクロの1つがCountColorIfです:

Function CountColorIf(rSample As Range, rArea As Range) As Long     Dim rAreaCell As Range     Dim lMatchColor As Long     Dim lCounter As Long

lMatchColor = rSample.Interior.Color     For Each rAreaCell In rArea         If rAreaCell.Interior.Color = lMatchColor Then             lCounter = lCounter + 1         End If     Next rAreaCell     CountColorIf = lCounter End Function

マクロを使用するには、テストする背景色とテストする範囲を持つセルを指定するだけです。たとえば、セルA57が、カレンダーセルで使用しているのと同じ紫色の背景色でフォーマットされているとします。カレンダーがセルA1:G6にある場合は、以下を使用して紫色のセルの数を取得できます。

=CountColorIf(A57, A1:G6)

カレンダーのセルの色を変更する場合は、ワークシートの再計算を強制するために何かを行う必要があることに注意してください。背景色を変更した後、Excelは自動再計算を行わないようです。

もちろん、問題に取り組み、CountColorIfなどのユーザー定義関数を開発する方法はたくさんあります。この点で役立つ可能性のある情報を含む他のいくつかのWebサイトを次に示します。

http://www.cpearson.com/excel/colors.aspx https://www.ozgrid.com/VBA/sum-count-cells-by-color.htm http://xldynamic.com/source/xld.ColourCounter.html

使用できるサードパーティのアドオンもいくつかあります。

読者が提案するそのようなアドオンの1つは、Kutools forExcelです。アドオンの詳細については、

をご覧ください。

https://www.extendoffice.com/product/kutools-for-excel.html

最後に、このヒントのアイデアは、明示的に色で塗りつぶされているセルを操作している場合にうまく機能します。条件付き書式を使用して色付けされたセルでは機能しません。条件付き書式では、簡単にラッチできるものが実際には提供されないため、これはまったく異なる沸騰するケトルです。

注:

このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(11725)は、Microsoft Excel 2007、2010、2013、2016、2019、およびOffice365のExcelに適用されます。