• ベストアンサー

2つのセルの条件に合ったセルの個数

A 日付 B名称 C可否(○×)も表でA日付が今日より前のものでなおかつCが○のセルの個数を求めたいのですがうまくいきません。 (1) AND(COUNTIF(A1:A10,"<"&TODAY()),COUNTIF(C1:C10,"○")) とするとFALSEと表示される。 どこが悪いのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんばんは! 条件が二つ以上の場合は =SUMPRODUCT((A1:A10<TODAY())*(C1:C10="○")) としてみてください。 たぶん大丈夫だと思います。 ※ Excel2007以降のバージョンですと、COUNTIFS関数が使えるはずです。 手元にExcel2003しかないので この程度でごめんなさい。m(_ _)m

taisyoyose
質問者

お礼

お礼が遅くなり申し訳ありません。 大変参考になりました。 EXCEL関数については、今後も質問させていただきます。

その他の回答 (1)

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

=COUNTIF(A1:A10,"<"&TODAY())の式で今日より前の日付が幾つかるかを調べることができますね。また、=COUNTIF(C1:C10,"○")でC列に○が幾つあるかを数えることができますね。しかしながら同じ行でA列が今日よりの前の日付でC列が○となっているとは限りません。A列が今日よりも前で、C列が○である行の数をお示しの式で求めることはできません。 両方の条件を満足する行の数を数えるためには回答No1さんのように =SUMPRODUCT((A1:A10<TODAY())*(C1:C10="○")) にするか、エクセル2010などでしたら =COUNTIFS(A1:A10,"<"&TODAY(),C1:C10,"○")  なお、データが多くなりますと計算が重くなりますので例えば作業列を使って対応することもできます。分かり易い方法です。 例えばD1セルに次の式を入力して下方にドラッグコピーします。 =IF(AND(A1<TODAY(),C1="○"),1,"") 答えのセルには =SUM(D:D)

taisyoyose
質問者

お礼

お礼が遅くなり申し訳ありません。 大変参考になりました。 関数についての途中の命令の説明がとても参考になりました。