• 締切済み

【Excel】CountIFとSUM(IF・・・)の結果が違う原因

Excelの関数について困っています。 Sheet/セルに日付が入力されています。この日付は空白もあるし,ちゃんと日付が入っている行もあります。 この日付に対して =COUNTIF(A1:A100,"<2009/1/12") の結果と =SUM(IF(A1:A100<2009/1/12,1,0)) の結果が異なります。 空白には,何も入力されていないことは確認しています。 この原因について,ご存知の方,ご回答の程,宜しくお願い致します

みんなの回答

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.3

COUNTIFは空白を計数しないが、SUM(IF(・・)の配列数式では、空白を0と認識する為、空白も含み計数するからです。 因みに配列数式の日付比較はA1:A100<"2009/1/12"*1としないと有効ではありませんので、以下の様にすれば同一になります。 =SUM(IF(A1:A100<>"",IF(A1:A40<"2009/1/12"*1,1,0)))

honeybee-88
質問者

お礼

うまくいきました! なるほど! 前にあるA1:A100<>""と<"2009/1/12"*1ミソですね。 ありがとうございました

  • kmuraz
  • ベストアンサー率0% (0/0)
回答No.2

=SUM(IF(A1:A100<2009/1/12,1,0))は、日付を比較するのではなくて、 2009/1/12=167.4 と比較する式になっていませんか? 日付にするのなら、DATEVALUE("2009/1/12")と変換しないと うまく動作しないのではないでしょうか? 又、日付は、シリアル値として処理されていますが、 1から始まっているので、countifの場合は、比較できない セルと比較しているので、該当しないという事で0となっているのでは 無いでしょうか? ご確認ください。

honeybee-88
質問者

お礼

四則演算になっていたのかもしれませんね。””でくくることで正確に結果がでるようになりました。 ありがとうございます

  • VOT
  • ベストアンサー率45% (11/24)
回答No.1

? ちょっと意味がわからないので、挙動を取り違えている可能性もありますのでご容赦ください。 =SUM(IF(A1:A100<2009/1/12,1,0))  これはどういう意味で解釈されるのかさっぱりわからないのですが、SUM()の引数になっているIF(A1:A100<2009/1/12,1,0)の結果は 0 か 1にしかならないですよね。 つまり、この式は =SUM(1) か =SUM(0) のどちらかと等価のはずです。その結果は 1 か 0 になるはずです。そういう挙動なのであれば、そういうことです。 # もしかして Range() オブジェクトを 2009÷12 と比べてるのかなぁ。

関連するQ&A