- ベストアンサー
セル内の特定の文字を含むセルの個数を結果表示する方法
- Excel2003の環境で、特定の文字が入っているセルの個数を集計し、結果をセル「AC1」に表示する方法について質問させてください。
- 質問内容は、セル「S列」に「test」という文字が含まれているセルを探し、その個数をカウントして結果を表示したいというものです。
- データ数が変動するため、ワイルドカードを使用して検索する方法を試していますが、うまくいっていない状況です。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
Excel2003を所有していないため、動作確認が出来ておりませんが、おそらく次の様なVBAのマクロで大丈夫だと思います。 Sub Macro1() Dim ans As Long ans = Application.WorksheetFunction.CountIf(Columns("S:S"), "*test*") Range("AC1").Value = ans End Sub
その他の回答 (2)
EXCEL の COUNTIF 関数を使うのではだめでしょうか? これならワイルドカードも使えますし。 http://www.pursue.ne.jp/Document_xls/xls0022.htm どうしても VBA で処理したいのであれば WorksheetFunction.CountIf メソッドとか。 http://www.happy2-island.com/excelsmile/smile03/capter01404.shtml
2003ユーザーではありませんが、Likeでワイルドカード比較出来る思います。 変数は全部Longに統一しました。 for~nextは最終行から行う必要はありませんので1行目からとしています。 ifは今回分岐が無いので1行で可能です。 Sub Macro1() Dim Maxrow, i, ans As Long ans = 0 With ActiveSheet Maxrow = Range("S" & Cells.Rows.Count).End(xlUp).Row For i = 1 To Maxrow If Range("S" & i).Value Like "*test*" Then ans = ans + 1 Next i Range("AC1") = ans End With End Sub
お礼
よく下から上がってをやっているせいで、固定観念にとらわれておりました… もっと柔軟に考えられるようにしないといけませんね。 ご教授ありがとうございました。
お礼
サイトのご提示ありがとうございました。 本来の状態では、結構大がかりなVBAになっておりまして… 実際のデータ数も100程度から万単位の場合もありまして VBAでという希望でした。 素人にちょっぴり毛が生えたレベルの自分にはなかなか難しい事が多いですが ご提示いただいたサイト等も活用させていただきます。