みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

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

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

この日付に対して

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

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

投稿日時 - 2009-01-20 18:40:39

QNo.4646276

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

3人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

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

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

投稿日時 - 2009-01-22 17:07:10

お礼

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

投稿日時 - 2009-01-23 17:24:04

ANo.2

=SUM(IF(A1:A100<2009/1/12,1,0))は、日付を比較するのではなくて、
2009/1/12=167.4 と比較する式になっていませんか?

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

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

ご確認ください。

投稿日時 - 2009-01-20 19:15:42

お礼

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

投稿日時 - 2009-01-23 17:26:04

ANo.1

VOT

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

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

投稿日時 - 2009-01-20 19:01:19

あなたにオススメの質問