• 締切済み

Excelで、指定された文字列のカウントは出来ますか?

卒業論文のための資料を作成中なのですが、慣れないExcelを使っての作業であるため、なかなか進まず困っています。 少し調べてみても分からなかったので質問させて頂きます。 Excelでは、指定した文字列が全体で幾つあるかのカウントは出来るのでしょうか? たとえば、「現在」という単語がExcelの表の中に100個含まれている場合、 何らかの方法を使って、一発で100個あるということは分かるのでしょうか? 今までは文字列検索を使用して、一つ一つ数えながらの作業でしたので、 本当に気の遠くなるような作業になっております。 Excelでは不可能である場合、もしご存知の方がいらっしゃいましたら、 上のような作業が出来るソフトなどを教えて頂ければと思います。 すみませんが、どうかよろしくお願い致します。

みんなの回答

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.4

エクセル関数の一例です。 表範囲をA1:D10とし、「現在」の表示数 =SUMPRODUCT(LEN(A1:D10)-LEN(SUBSTITUTE(範囲,"現在","")))/2

  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.3

一つのセルの中に、複数個検索語が存在していない場合は、下記でできると思います。 Sub test() Debug.Print countText(ActiveSheet.UsedRange, "Excel") End Sub Private Function countText(targetRange As Range, targetString As String) As Long Dim c As Range Dim firstAddress As String Dim counter As Long With targetRange Set c = .Find(targetString, LookIn:=xlValues) '部分一致 If Not c Is Nothing Then firstAddress = c.Address counter = 1 Do Set c = .FindNext(c) If Not c Is Nothing And c.Address <> firstAddress Then counter = counter + 1 End If Loop While Not c Is Nothing And c.Address <> firstAddress End If End With countText = counter End Function 一つのセルの中に複数個存在する場合は、タブ区切りテキストファイルとかCSVで保存した後、下記のコードで処理すると出来ると思います。ご参考まで。 Sub Test2() Dim FSO, buf As String Dim strPattern As String Dim srcFilePath As String srcFilePath = "C:\Documents and Settings\?????\デスクトップ\testText.txt" Set FSO = CreateObject("Scripting.FileSystemObject") With FSO.GetFile(srcFilePath).OpenAsTextStream buf = .ReadAll .Close End With Set FSO = Nothing strPattern = "Excel" With CreateObject("VBScript.RegExp") .Pattern = strPattern .Global = True MsgBox .Execute(buf).Count End With End Sub

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

No.1です。 先ほどの回答はもしかして的外れかもしれません。 セルの個数の拾い出しになりますので、 もし一つのセルの中に複数「現在」という文字列があっても 「1」としかカウントしません。 どうも何度も失礼しました。m(__)m

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんにちは! COUNTIF関数で対応できると思います。 仮にA列データすべての個数を知りたい場合は =COUNTIF(A:A,"*現在*") としてみてください。 尚、データが1列でなければデータすべてを範囲指定してもOKです。 COUNTIF関数はワイルドカードが使えますので 上記のような数式にしました。 以上、参考になれば幸いです。m(__)m

専門家に質問してみよう