21/05/2017

Função para Contar Caracteres Específicos no Texto de uma Célula

Outro dia surgiu a necessidade de contar quantos caracteres "@" (arroba) haviam no texto de uma célula.

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 Function
Fim!

4 comentários:

  1. Usei sua função para criar um somase() strings horizotais..sensacional!

    ResponderExcluir
  2. Tem como fazer isso em uma matriz?

    ResponderExcluir
  3. Imports System

    Module 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

    ResponderExcluir
  4. Perfeito! Serviu exatamente para o que eu estava procurando.

    ResponderExcluir

Dica: Criando Diretórios no Windows (Pastas e Subpastas)

Certa vez, precisei criar uma árvore de pastas no Windows. Lembro-me de ter sido uma tarefa bastante exaustiva, pois envolvia 200 pastas, e ...