- ベストアンサー
式で空白セルのカウント
- 「COUNTA()」関数を使用してセルの値をカウントする際に、空白セルに設定された""がカウントされてしまう問題が発生しています。
- 空白セルの設定方法として、""を代入する方法ではなく、他の方法を探しています。
- セルの値が空白であることを確実に示す方法や、COUNTA()関数に空白セルをカウントさせない方法について教えていただきたいです。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
SUMPRODUCT関数はどうでしょう。 F1:F20の空白""でないセルをカウントする場合 =SUMPRODUCT((F1:F20<>"")*1) 最後の"*1"は必須。 以上です。
その他の回答 (3)
- myRange
- ベストアンサー率71% (339/472)
回答3、myRangeです。 >なぜ、SUMPRODUCT関数では、<>""でカウントされないのでしょう? 式の結果をちゃんと捉えているこのSUMPRODUCTの振る舞いの方がふつうだと思いますが。。。。 それよりも COUNTAやCOUNTIFではなぜ質問のようなカウントができないのだろうか? という疑問の方が気になりませんか? COUNTAは、式の結果""と未入力を区別していると考えれば納得できますが、 COUNTIFについて下記のことを試してみるとなお更納得がいかないはずです。 新しいシートで試してください。 A1: 555 A2: 未入力 A3: 未入力 A4: =IF(B1="","",B1) ■B1は未入力 この状態で (1)COUNTIF(A1:A4,"") 空白セルのカウント (2)COUNTIF(A1:A4,"<>") 空白セル以外のカウント (1)の結果は、3 (2)の結果は、2 (1)では、式の結果の""も空白としてカウントしているが (2)では、式の結果の""を空白とみなしてない これは明らかに矛盾していると思われるが、 なぜそんな結果になるかはCOUNTIFを作った人しか分からない 仕様だと割り切るしかないということです。 それらを踏まえて、一言。 カウントや合計はCOUNT関係の関数やSUMIFなどよりSUMPRODUCTの方が使い勝手がいい。 何よりも複数条件にも対応できるので。(2007では複数条件対応関数がある) どうも質問者の疑問点には答えてないような気もしますが この手の質問は答えようがないので、、、、 以上です。
お礼
ありがとうございました。 納得でき...ないのですが、仕様として割り切ろうと思います。 割り切るための材料まで頂き、本当にありがとうございます。
- chie65536(@chie65535)
- ベストアンサー率44% (8740/19838)
>式で""を設定をした空白セルがCOUNTAでカウントされます これは「仕様」です。回避出来ません。 >COUNTA()-COUNT()等の式の追加は、できるだけ回避したいです。 回避できません。 >=IF(COUNTA(B2:AA91)>127,1,"") は =IF((COUNTA(B2:AA91)-COUNTBLANK(B2:AA91))>127,1,"") と書くしかありません。 回避する唯一の方法は「諦める」しかありません。
- merlionXX
- ベストアンサー率48% (1930/4007)
数式が入っていれば「空白」ではないのでCOUNTAでひっかかるのは当然のことです。 ="" を空白としたいならCOUNTBLANK関数では空白に数えてくれますから、逆に空白でないセルをカウントするのではなく対象範囲のセル数から空白セル数を引くしかないと思いますが。
お礼
できたーーー!!! 他の回答を見ていても、半ばあきらめていたのですが... スッキリです! 助かりました! どうしても分からないのですが、 SUMPRODUCT関数での<>""は、空白セルも""入力セルも同様に反応してくれるんですね。 もしかして、COUNTIF()でも、同じようにできるかと思ったのですが、 =COUNTIF(F5:M5,"<>"&"") これでもできませんでした。 なぜ、SUMPRODUCT関数では、<>""でカウントされないのでしょう? ほんの少し補足をいただけると助かります。 問題自体は解決しました。 コメントいただけるか少しだけ様子を見てクローズいたします。