プロが教える店舗&オフィスのセキュリティ対策術

Excelの関数について困っています。
Sheet/セルに日付が入力されています。この日付は空白もあるし,ちゃんと日付が入っている行もあります。

この日付に対して

=COUNTIF(A1:A100,"<2009/1/12") の結果と
=SUM(IF(A1:A100<2009/1/12,1,0)) の結果が異なります。

空白には,何も入力されていないことは確認しています。
この原因について,ご存知の方,ご回答の程,宜しくお願い致します

A 回答 (3件)

COUNTIFは空白を計数しないが、SUM(IF(・・)の配列数式では、空白を0と認識する為、空白も含み計数するからです。



因みに配列数式の日付比較はA1:A100<"2009/1/12"*1としないと有効ではありませんので、以下の様にすれば同一になります。
=SUM(IF(A1:A100<>"",IF(A1:A40<"2009/1/12"*1,1,0)))
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/01/23 17:24

=SUM(IF(A1:A100<2009/1/12,1,0))は、日付を比較するのではなくて、


2009/1/12=167.4 と比較する式になっていませんか?

日付にするのなら、DATEVALUE("2009/1/12")と変換しないと
うまく動作しないのではないでしょうか?

又、日付は、シリアル値として処理されていますが、
1から始まっているので、countifの場合は、比較できない
セルと比較しているので、該当しないという事で0となっているのでは
無いでしょうか?

ご確認ください。
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/01/23 17:26

? ちょっと意味がわからないので、挙動を取り違えている可能性もありますのでご容赦ください。



=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 と比べてるのかなぁ。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!