重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

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

excelvbaですが、

ある範囲(例えばB2~B20)に、数字が入っています。
1個だけ(例えば30)をカウントするなら「countif」が使えます。

やりたいのは、条件に範囲を指定したい(例えば30~50)のです。

excel関数には「countifs」が在りますが、excelvbaでは使えないみたいです。

何かいい方法を教えてください。
宜しくお願いします。

A 回答 (3件)

COUNTIFで行う場合は



COUNTIF(範囲,">=30")-COUNTIF(範囲,">50")

の様に30以上の数値の件数から50を超える数値の件数を差し引いてやれば答えは出ます。
    • good
    • 0
この回答へのお礼

早速有り難うございました。

恐れ入りました。
発想の転換の見本ですね。
読んだだけで分かりました。

もちろんできました。
お世話になりました。

お礼日時:2014/05/03 20:12

>excel関数には「countifs」が在りますが、excelvbaでは使えないみたいです。


いえいえ
VBAには
WorksheetFunctionというのがあります。

MsgBox WorksheetFunction.CountIfs(Range("B2:B20"), "<50", Range("B2:B20"), ">30")

で試してみてください。
私は、空いているセルに関数を入れて引っ張ってきます。
こちらの方が、簡単で後から変更する場合にも便利ですよ。
    • good
    • 0

こんばんは!



そのままワークシート関数を使ってみてはどうでしょうか?
仮にD1セルに表示させるとすると

Sub Sample1()
With Range("D1")
.Formula = "=COUNTIFS(B2:B20,"">=30"",B2:B20,""<=50"")"
.Value = .Value
End With
End Sub

といった感じで・・・m(_ _)m
    • good
    • 0
この回答へのお礼

早速有り難うございました。
そのまま貼り付けてみたのですが、
エラーにならなかったので、動くかも知れません。

ただ、私の環境では、D1セルに「name2」のエラーが入りました。
3番の方の教えがスッキリシンプルなので使わせていただきました。

お世話になりました。

お礼日時:2014/05/03 20:11

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