Por exemplo, a célula A1 continha o texto: "meu@nome@é@esse@fim"
A fórmula retornaria o seguinte valor: 4, pois essa é a quantidade exata de @ dentro da célula.
Num outro caso, precisei contar quantos fragmentos de texto, como por exemplo, "meu_nome" haviam no texto de uma célula.
O texto era: "Aqui_entra_meu_nome_e_aqui_meu_nome_sai."
O resultado da função nesse caso seria: 2, pois o texto contém "meu_nome" duas vezes.
Se o texto que você quer está na célula A1, sua função precisará inserida em outra célula da seguinte forma:
Funcionamento: =CONTCAR( "defina aqui a célula ou algum texto" ; "defina aqui o que será procurado")
=CONTCAR(A1;"|")Se a célula A1 aqui contiver o texto: "Meu|Número|é|123456", o resultado seria: 3, pois estaríamos procurando pela quantidade de caracteres "|" (pipe) no texto.
Segue função:
Public Function CONTCAR(ByRef Texto As String, ByVal Caractere As String) As Integer
Dim tamanho, tmn, total As Variant
total = 0
tamanho = Len(Texto)
tmn = Len(Caractere)
For i = 1 To tamanho
If Mid(Texto, i, tmn) = Caractere Then
total = total + 1
Else: End If
Next
CONTCAR = total
End FunctionFim!
Usei sua função para criar um somase() strings horizotais..sensacional!
ResponderExcluirTem como fazer isso em uma matriz?
ResponderExcluirImports System
ResponderExcluirModule Program
Sub Main(args As String())
Dim vetor(0 To 1) As String
For i = 1 To 1
Console.Write("Insira a String : ")
vetor(i) = Console.ReadLine()
Console.WriteLine(vetor(i))
Console.Write("A = ")
Console.WriteLine(ContaCaracteresNaString(vetor(i), "a"))
Console.Write("B = ")
Console.WriteLine(ContaCaracteresNaString(vetor(i), "b"))
Console.Write("C = ")
Console.WriteLine(ContaCaracteresNaString(vetor(i), "c"))
Console.Write("D = ")
Console.WriteLine(ContaCaracteresNaString(vetor(i), "d"))
Console.Write("E = ")
Console.WriteLine(ContaCaracteresNaString(vetor(i), "e"))
Console.Write("F = ")
Console.WriteLine(ContaCaracteresNaString(vetor(i), "f"))
Console.Write("G = ")
Console.WriteLine(ContaCaracteresNaString(vetor(i), "g"))
Console.Write("H = ")
Console.WriteLine(ContaCaracteresNaString(vetor(i), "h"))
Console.Write("I = ")
Console.WriteLine(ContaCaracteresNaString(vetor(i), "i"))
Console.Write("J = ")
Console.WriteLine(ContaCaracteresNaString(vetor(i), "j"))
Console.Write("K = ")
Console.WriteLine(ContaCaracteresNaString(vetor(i), "k"))
Console.Write("L = ")
Console.WriteLine(ContaCaracteresNaString(vetor(i), "l"))
Console.Write("M = ")
Console.WriteLine(ContaCaracteresNaString(vetor(i), "m"))
Console.Write("N = ")
Console.WriteLine(ContaCaracteresNaString(vetor(i), "n"))
Console.Write("O = ")
Console.WriteLine(ContaCaracteresNaString(vetor(i), "o"))
Console.Write("P = ")
Console.WriteLine(ContaCaracteresNaString(vetor(i), "p"))
Console.Write("Q = ")
Console.WriteLine(ContaCaracteresNaString(vetor(i), "q"))
Console.Write("R = ")
Console.WriteLine(ContaCaracteresNaString(vetor(i), "r"))
Console.Write("S = ")
Console.WriteLine(ContaCaracteresNaString(vetor(i), "s"))
Console.Write("T = ")
Console.WriteLine(ContaCaracteresNaString(vetor(i), "t"))
Console.Write("U = ")
Console.WriteLine(ContaCaracteresNaString(vetor(i), "u"))
Console.Write("V = ")
Console.WriteLine(ContaCaracteresNaString(vetor(i), "v"))
Console.Write("W = ")
Console.WriteLine(ContaCaracteresNaString(vetor(i), "w"))
Console.Write("X = ")
Console.WriteLine(ContaCaracteresNaString(vetor(i), "x"))
Console.Write("Y = ")
Console.WriteLine(ContaCaracteresNaString(vetor(i), "y"))
Console.Write("Z = ")
Console.WriteLine(ContaCaracteresNaString(vetor(i), "z"))
Next i
End Sub
Public Function ContaCaracteresNaString(ByVal texto As String, ByVal caracter As String) As Long
Dim x As Object
x = Split(texto, caracter)
ContaCaracteresNaString = UBound(x)
End Function
End Module
Pode ajudar a voces
Perfeito! Serviu exatamente para o que eu estava procurando.
ResponderExcluir