ロッドはExcelでクリスマスカードのリストを持っています。 (実際、この質問はどのグリーティングカードリストにも当てはまります。)各名前には一意の数値IDが関連付けられており、名前が家族、友人、学校の友人、職場の友人のいずれであるかに基づいて色分けされています。彼はまた、その人が今年カードを受け取るかどうかを示す列にTrue / Falseインジケーターを持っています。ロッドは、2つの基準に適合するカードの数を数えたいと考えています:

「カードを取得」インジケーターがTrueで、IDが50以下です。

あるいは、「カードを取得する」インジケーターがTrueで、カラーコードが赤であるカードの数を数える方法が必要です。

このようなサブリストを定期的に取得するだけでよい場合、最も簡単で柔軟な解決策は、Excelのフィルタリング機能を使用してから、SUBTOTAL関数を使用してカウントを決定することです。必要なほぼすべての基準に基づいて行を表示するようにフィルタリングできます。リストが必要なものを表している場合は、次のような式を使用できます。

=SUBTOTAL(3,B2:B100)

SUBTOTAL関数のこのバリエーションは、指定された範囲内に表示されたすべての行のカウントを返します。ここで重要なのは、表示される行はフィルタリング条件を満たす行だけなので、数式は必要な数を返すということです。

必要な情報を返す数式もあります。 COUNTIFS関数は複数の基準を調べ、比較の結果に基づいてカウントを返します。たとえば、次の式は、「カードを取得する」リストメンバーの数を提供します

インジケーターがTrueで、IDが50以下の場合:

=COUNTIFS(A2:A100,"<50",B2:B100,TRUE)

この式は、A2:A100のリストメンバーのみを調べ、B2:B100に「getscard」として機能するTrue / False値が含まれていることを前提としています

インジケータ。

COUNTIFS関数はExcel2007から導入されたことを覚えておく必要があります。古いバージョンのExcelでも使用されるブックを作成する場合は、別の関数を使用してカウントを返すことをお勧めします。

=SUMPRODUCT((A2:A100<50)B2:B1001)

|||数式でセルの色を考慮したい場合は、少し注意が必要です。ユーザー定義関数(マクロ)を考案できます

セルの色を返し、それを数式で使用します。 (_ExcelTips_の他の問題でそのような関数について説明しています。)マクロを回避する簡単な方法は、個人が属するグループ(家族、友人、学校の友人、または職場の友人)を示す数値を含む列をデータに追加することです。 。次に、数式に列の値を含めることができます。

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

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