プロが教えるわが家の防犯対策術!

エクセル2000です。
たとえば、A1:A100の範囲に、空白か否かを問わずセルがいくつあるかを返すワークシート関数はないでしょうか?

空白以外の数+空白の数で求められるかと思いましたが、
=COUNTA(A1:A100)+COUNTBLANK(A1:A100) では、計算の結果 ="" になっているセルが両方にカウントされてだめです。
VBAなら Range("A1:A100").Count で一発なのですが・・・・。

A 回答 (6件)

◆こんな式はいかがでしょうか


=COUNTIF($C$15:$D$24,"<>=?")
    • good
    • 1
この回答へのお礼

あっ!
これはすごいですね。
でも、COUNTIFの条件式 "<>=?" の意味がまったくわかりません。

よろしければご教示いただけませんでしょうか?

お礼日時:2008/11/27 15:52

回答番号:No.4です


恥ずかしい答えです
取り下げます
    • good
    • 0

こんな方法も


A1:A100  =ROW(A100)*COLUMN(A1)
A1:B100  =ROW(A100)*COLUMN(B1)
A3:A100  =(ROW(A100)-(ROW(A3)-1))*COLUMN(A3)
A3:B100  =(ROW(A100)-(ROW(A3)-1))*COLUMN(B3)
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2008/11/27 15:49

私の場合の例なら



=c_c("A1","A100")

これで出てきます。
    • good
    • 0
この回答へのお礼

なるほど・・・・。
ユーザー定義関数はあまり使ったことがないのですが、みようみまねで

Function c_c(rng As Range)
c_c = rng.Count
End Function

としてみました。合ってますかね?

これでセルには
=C_C(A1:B26) と、ドラッグで範囲を入力できるようになりました。

ありがとうございます。

お礼日時:2008/11/27 14:49

>VBAなら Range("A1:A100").Count で一発なのですが・・・・。



それが分かってるならFunctionで定義しちゃえば良いんじゃないかと。
例えばこんな感じで標準モジュールに書き込むとか。

Function c_c(st As String, ed As String) As Double
c_c = Range(st & ":" & ed).Count
End Function
    • good
    • 0
この回答へのお礼

ありがとうございます。
変数、st や ed にはどうやって開始セルのアドレスと終了セルのアドレスを代入すればいいでしょうか?

お礼日時:2008/11/27 14:15

なぜそのようなことをしたいのか分かりませんが・・・。



=ROW(A100)-ROW(A1)+1
    • good
    • 0
この回答へのお礼

ありがとうございます。

質問したあとで、
=ROWS(C15:D24)*COLUMNS(C15:D24)
で出来ることに気づきました。

例では1列でしたが実際は複数列なので・・・

お礼日時:2008/11/27 14:06

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