[[20080129185825]] 『文字列データに含まれる特定の文字をカウントする』(網輔) ページの最後に飛ぶ

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

 

『文字列データに含まれる特定の文字をカウントするマクロ』(網輔)
 文字列データが沢山の行にあります。
 その文字列データに含まれる特定の文字をカウントするマクロをご教示下さい。

 たとえば、下記A列の各行に文字データがあります。
 (実際にはデータが約1000行ぐらいあります。)
このデータに特定の文字”りんご”を含む文字データをカウントするマクロです。
よろしくお願いいたします。(この場合では"4"とカウントされる。)
(A1)
 青りんご
 しぶ柿
 ぶどう
 赤りんご
 バナナ
 みかん
 青森りんご
 青りんご
 みかん

 [エクセルのバージョン]
 Excel2003
 [OSのバージョン]
 WindowsXP


 一般関数ですがだめですか?
 =COUNTIF(A1:A9,"*りんご*")
 (MARBIN)

MARBINさん、ありがとうございます。
 マクロで自動集計したいので
 マクロで実現したいのですが・・・。

 VBAでも同じですが・・・。
 MsgBox WorksheetFunction.CountIf(Worksheets(1).Range("A:A"), "*りんご*")
 (MARBIN)

 MARBINさん、ありがとうございます。
 マクロは勉強を始めたばかりなので、
 申し訳ありませんでした。m(_ _)m
 (網輔)


 VBAでループで検索する場合は、
 Like演算子
 を使うと便利です。
 あと、オートフィルタなどでも出来ると思いますが、
 使ったことがないので解説できません・・・。
 (MARBIN)

 1行目を結果が入る行として空けておいて、2行目からデータが始まるとしておいて。
 A1に結果が出ます。
 ご参考に。

 Sub SAMPLE1()
   Dim I As Long, CT1 As Long, FU1 As Boolean
   For I = 2 To 3000
     If (Cells(I, 1) = "") Then Exit For
     FU1 = Cells(I, 1) Like "*りんご*"
     If (FU1 = True) Then CT1 = CT1 + 1
   Next I
   Cells(1, 1) = CT1
 End Sub
                                (mr_mangoos)

 Sub test()
 Dim myDirteria As String, x As Long
 myCirteria = InputBox("文字列を入力")
 If myCriteria = "" Or myCriteria = "False" Then Exit Sub
 MsgBox worksheetfunction.countif(Worksheets(1).Range("A:A"), "*" & myCriteria & "*")
 End Sub
 (seiya)


 MARBINさん、mr_mangoosさん、seiyaさん、
 ありがとうございます。とても参考になりました。
 今度は少しレベルUPして複数の条件でカウントする方法を
 オートフィルタとCOUNTIFを使ってVBAで作ろうと勉強してます。
 (網輔)  

コメント返信:

[ 一覧(最新更新順) ]


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