質問: countifで空白表示以外のセル数を取得 エクセル2010です。 セル範囲a1:a10にはすべて数式が入っています。 計算の結果はすべて文字列が返ります。 その中には、="" で空白に表示されたセルもあります。 セル範囲a1:a10で空白に表示されたセルの数は =countblank($a$1:$a$10) で求められます。 空白でないセルの数を求める場合 =counta($a$1:$a$10) では、="" も数式が入っているためすべてカウントされ使えません。 やむを得ず、 =sumproduct(($a$1:$a$10<>"")*1) や =rows($a$1:$a$10)-countblank($a$1:$a$10) でしのぎました。 これを、countifで求めることはできないでしょうか? =countif($a$1:$a$10,"<>""") とやってみましたが、これも全セル数を返すようです。
回答: 数式が入っているということは空白ではありません。 何も無い用に見えているだけで文字は入っています。その為文字を含めてカウントするcountaなどではカウントされてしまいます。 出来ない式の訂正で申し訳ないですが、 >=countif($a$1:$a$10,"<>""") こちらではなく =countif(a1:a10, "<>") =countif(a1:a10, "<>"&"") の方が数式としては正しいのではないでしょうか。 数式の計算結果が0であれば対応が簡単ですが、文字となると =counta(a1:a10)-countif(a1:a10,"") という方法などでしょうか。 計算結果を0にすれば簡単ですのでa1~a10の式をつついて =if(b1&c1="",0,(b1&c1)) などとしておいて値が無ければ数字の「0」を返すようにしてください。 *注意:0であって"0"ではありません。"0"にしたらどうなるかご確認ください。 そしてカウントしたい場所で =countif(a1:a10,"<>0") という形にしてください こうすれば空白を返すのでは無く数字の「0」を返すので「0」以外をカウントしてくれます。”0”は文字の0となります。 数字の0の非表示はオプションから出来ます。