数式= SUMIF(B1:B100、 “Current”、D1:D100)は、列Bの対応するセルにテキスト “Current”が含まれている場合、列Dの値の合計を提供します。ただし、Kennethが実際に必要としているのは、列Bに「Current」が含まれている場合の列Dの値のカウントです。 (Dの値の数は、Bの「Current」のインスタンスの数とはかなり異なる場合があります。)彼は、SUMIFをCOUNTIFに変更するのと同じくらい簡単であることを望みますが、エラーが発生します。

エラーが発生する理由は、SUMIFには3つのパラメーターが必要であり、COUNTIFには2つのパラメーターしか必要ないためです。したがって、SUMIFをCOUNTIFに置き換えるだけでは、エラーが発生します。代わりに、次のようにCOUNTIFを使用できます。

=COUNTIF(B1:B100,"Current")

これはエラーにはなりませんが、正しい答えも得られません。 Kennethは、D1:D100の範囲の値を含むセルの数をカウントする必要がありますが、列Bの対応するセルに「Current」というテキストが含まれている場合に限ります。 COUNTIF式では、列Dも有効になりません。 「現在」という単語を含むB1:B100の範囲のセルの数のみをカウントします。

解決策は、代わりにCOUNTIFS関数を使用することです。この関数を使用すると、カウントを導出するために複数の条件をチェックできます。この場合、次のバージョンが機能します:

=COUNTIFS(B1:B100,"current",D1:D100,">0")

この式は、ゼロより大きいD1:D100の値の数をカウントします。 (まあ、B1:B100に「current」が含まれている場合にのみカウントされます。)これは、空のセルまたはテキストを含むセルがCOUNTIFSによって0と同等であると見なされるために機能します。また、関数では大文字と小文字が区別されないことに注意してください。マッチングに関しては、「現在」

また、「現在」または単語内の大文字と小文字の任意の組み合わせに一致します。

セルに負の値が含まれている可能性がある場合は、代わりにこのバリエーションを試す必要があります:

=COUNTIFS(B1:B100,"current",D1:D100,"<>")

欠点は、この方法では、テキストを含むセルもカウントに含まれることです。

次の式を使用することもできます:

=SUMPRODUCT(--(B1:B100="current"),--(D1:D100<>""))

繰り返しますが、これにはカウントにテキスト値が含まれています。テキスト値を無視したい場合は、このバリエーションが最適です:

=SUMPRODUCT(--(B1:B100="current"),--ISNUMBER(D1:D100))

配列数式として入力する場合は、次の数式も使用できます(Ctrl + Shift + Enterを押します)。

=SUM((B1:B100="current")*ISNUMBER(D1:D100))

必要な合計を導き出す方法は他にもあります。 1つの方法は、DCOUNT関数(複数の基準に基づいてカウントする)を使用することですが、そのアプローチでは、すでに説明した式よりも多くの設定が必要です。

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

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