電子書籍の厳選無料作品が豊富!

エクセル2000のワークシート関数の質問です。
B1~B13には数式が入っており、計算の結果として何らかの文字や数字が表示されたセルと、何も表示されない、つまり=""のセルがあります。
このセル範囲の何かが表示されたセルの個数を取得する関数を探しています。

=COUNTIF(B1:B13,"<>""") としてみましたが全セル数の13が返りました。
やむをえず
=ROWS(B1:B13)-COUNTBLANK(B1:B13) とか
=SUMPRODUCT((LEN(B1:B13)>0)*1) とか
=SUMPRODUCT((B1:B13<>"")*1) として取得しましたが、本来のCOUNTIFでは取得できないのでしょうか?

A 回答 (9件)

><検索条件>は「何かが表示されている」



=COUNTIF(B1:B13,"=?*")

でできませんか?
説明
?は1文字を表すワイルドカードです。
*と組み合わせることで、最低1文字のセルのカウントということになります。
    • good
    • 2
この回答へのお礼

お礼が遅くなりすみませんでした。
すごいですね!ばっちりです。
=COUNTIF(B1:B13,"?*") でも同じ意味ですよね?
ありがとうございました。

お礼日時:2009/07/13 16:09

COUNTIF関数の条件では、『empty以外』かつ『""(長さ0の文字列)以外』をひとつの条件では設定できないという事ではないでしょうか。


つまり何らかの『数値』と長さ1以上の『文字列』を同時に条件設定できない。(?)
・SUMPRODUCT関数や配列数式で1つずつのセルを見て集計するか、
・範囲セル数からBLANK数を引くか、
・『数値』セル個数+長さ1以上の『文字列』セル個数とするか、
だと思われます。
=COUNT(B1:B13)+COUNTIF(B1:B13,"?*")

">*" > の後に*をつけた場合、*は単なる文字扱いで、文字コード比較のため『!"#$%&()』などがカウントされないようです。
文字列についてはmshr1962さんの式が最適じゃないでしょうか。
    • good
    • 2
この回答へのお礼

何度もご指導ありがとうございました。

お礼日時:2009/07/13 16:22

=COUNTIF(A:A,"<=ーー")


ただし、全ダッシュ―を3つ以上並べると数えませんので
=COUNTIF(A:A,"<=ーーーーー") にするなどの対応が必要です
参考まで
    • good
    • 0
この回答へのお礼

ありがとうございます。
=COUNTIF(A:A,"<=ーーーーー")  ですか???!!!
おどろきました。

お礼日時:2009/07/13 16:20

面白いと言えば面白いお題ですが、COUNTIF関数にそれほど拘らなくても良いんじゃないかと思います。


=ROWS(B1:B13)-COUNTBLANK(B1:B13)
のように目的に応じた関数を使えば良いのでは。

とりあえず
=COUNTIF(B1:B13,"<>""")
これは
=COUNTIF(B1:B13,"<>"&"")
もしくは
=COUNTIF(B1:B13,"<>")
ですね。ただし、emptyセル以外をカウントし、『=""のセル』を含んでしまいます。
逆の
=COUNTIF(B1:B13,"="&"")
=COUNTIF(B1:B13,"=")
これは、emptyセルのみカウントします。
じゃ
=COUNTIF(B1:B13,"")
これは、というとCOUNTBLANKと一緒で、emptyなセルと『=""のセル』をカウントします。
(あと『'』のPrefixのみのセルもカウントします)
#関係ないですけど『=""のセル』のみカウントするという条件は無さそう(?)

なのでCOUNTIF関数だけで
=ROWS(B1:B13)-COUNTBLANK(B1:B13)
これをやろうとすると
=COUNTIF(B1:B13,"<>")+COUNTIF(B1:B13,"=")-COUNTIF(B1:B13,"")
こんなんなってしまうのではないでしょうか。
(COUNTIF関数を使う意味が無くなってしまう?)
    • good
    • 1
この回答へのお礼

end-uさま、いつもありがとうございます。
「面白いお題」ですか。べつにお題ではなくほんと悩んでいました。
(; ´▽`A``

ご教示ありがとうございます。
文字列のみを対象とする場合は
=COUNTIF(A:A,"?*") を使い、
数値もある場合は
=ROWS(A:A)-COUNTBLANK(A:A) を使うことにします。

お礼日時:2009/07/13 16:17

COUNTA関数を使うことで空白セル以外のセル数をカウントできるのですが、その場合には空白であっても式が入力されている状態で空白の場合にはカウントされます。


そこで例えばA列で空白以外を数えるのでしたら次のような式になります。
=COUNT(A:A)+COUNTIF(A:A,">*")
ここでCOUNTIF関数では文字の入っているセルの数を数えています。
    • good
    • 0
この回答へのお礼

ありがとうございます。
出かけておりお礼が遅くなり、失礼致しました。
!"#$%&() 以外の文字はカウントできました。

お礼日時:2009/07/13 16:03

ヘルプには明記されていませんが、COUNTIFの対象が「指定した範囲に含まれる空白以外のセル」だからだと思います。



この程度の回答しか出来ず申し訳無いです…。
「エクセル/COUNTIF関数で空白以外の」の回答画像4
    • good
    • 0
この回答へのお礼

何度もありがとうございます。
そのまさに「指定した範囲に含まれる空白以外のセル」数を取得したいのですが。
<検索条件>は「何かが表示されている」
なんですけどねえ・・・。

お礼日時:2009/07/10 17:25

たびたびすみません、COUNTと同じ事がCOUNTIFではできないのかと言うことですよね?

    • good
    • 0
この回答へのお礼

ありがとうございます。
ワークシート関数でのCOUNTは数値が入力されたセル数を取得するものですよね。わたしが取得したいのは何かが表示されているセル数です。
COUNTIFは=COUNTIF(B1:B13,">1")のようにある条件に合致するセルの数を返すので、空白ではない <>"" という条件を何故指定できないのか不思議なのです。

お礼日時:2009/07/10 16:59

失礼!


質問の意味を誤解していました
    • good
    • 0

「COUNTBLANKを使う」と言うのでは駄目ですか?

    • good
    • 0

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