[[20111109155236]] 『vbaで複数範囲から文字列数をカウントする方法を求x(Qing) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『vbaで複数範囲から文字列数をカウントする方法を教えてください』(Qing)
windowsxp エクセルは、2010です。

複数の範囲に名前を付けました。「範囲1」
それを使って特定文字列の数を検索するvbaを教えてください。
例えば、「範囲1」の名前をつけた範囲内から「土屋」という文字列の数をカウントする時のvbaです。初心者で申し訳ございません。


 MsgBox Application.CountIf(Range("範囲の名前"), "検索文字")
 BJ

 同一セルに複数の該当文字がある場合は、このように

  Sub test()
    Const FindStr As String = "土屋"
    Dim r As Range
    Dim Ans As Long

    For Each r In Range("範囲1").Cells
      buf = buf & vbTab & r.Value
    Next r
    Ans = UBound(Split(buf, "土屋"))

    MsgBox FindStr & " は " & Ans & " 個"
  End Sub

 (momo)

momoさんありがとうございました。Qingです
せっかくいただいたのですが、うまくできません。まったくの初心者が無謀でした。
申し訳ございませんでした。
やりたかったことは、

セル A1:G1 と A2:J2 と A3:P3 までを指定して「Mo」という名前を付けました。
それらのセルには、「土屋」「広瀬」「古屋」などが一つのセルに一人の名前で入っています。

セル A25〜E25にそれぞれ見つけたい上記の名前が入っています。

「Mo」の中から知りたい名前の数をカウントしたい関数をvbaで作成して、セルA10に表示させたいのです。

で関数のcountif(Mo,$A$25)とセルA10に書いたところエラーが発生しました。だから、vbaでユーザー定義の関数を作成する必要があるのかと思った次第です。
素人でありながら、急ぎだったので知識のないまま丸投げしました。
申し訳ございませんでした。
勉強し直します。


 名前に含まれてるブロック(連続してるセル範囲)の数が判ってる(今回だとA1:G1、A2:J2、A3:P3の三つ)んだったら

 =COUNTIF(INDEX(Mo,,,1),"土屋")+COUNTIF(INDEX(Mo,,,2),"土屋")+COUNTIF(INDEX(Mo,,,3),"土屋")
 て式で求められるよ。
 (春日野馨)

 普通に春日野馨さんのようにもできますが
 ユーザー定義関数を作る勉強という事で、たとえば

 標準モジュールに

  Function QINGCOUNTIF(範囲 As Range, 検索文字 As String) As Long
    Dim r As Range
    Dim buf As String
    Application.Volatile
    For Each r In 範囲.Cells
      buf = buf & vbTab & r.Value
    Next r
    QINGCOUNTIF = UBound(Split(buf, 検索文字))
  End Function

 などとしておいて
 セルには
 =QINGCOUNTIF(Mo,A25)
 とすれば、答えは出ますね。
 (momo)

 もたもた書いている間にmomoさんと衝突。
ほとんどかわらないけど、常に Mo からということなら以下でも。

 ユーザー定義関数ということなら たとえば

 Function CountName(c As Excel.Range) As Long
    Dim r As Range
    Dim n As Long
    For Each r In Range("Mo").Areas
        n = n + WorksheetFunction.CountIf(r, c.Value)
    Next
    CountName = n
 End Function

 で、シート側では =COUNTNAME(A25) といったように記述。

 (ぶらっと)

春日野馨 様。 MOMO様。 ぶらっと様。
Qingです。ありがとうございました。

みなさまの速い返答に感動しました。
おかげさまでなんとか間に合いました。
本当にありがとうございました。
vbaすごいです。勉強します


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.