miércoles, 6 de octubre de 2010

Contar número de veces que se repite una letra en una celda de Excel.

Continuando con el post de Contar número de palabras en una celda, en el que un lector deseaba conocer el número de veces que se repetía cada letra del abecedario en el texto introducido en una celda, daré una opción de cálculo.
De manera muy similar a como definimos nuestra anterior función, introducimos en la celda D1:
=LARGO(A1)-LARGO(SUSTITUIR(A1;"a";""))
Vemos que seguimos empleando aquellas misma funciones LARGO(texto) y SUSTITUIR(texto; texto original; texto nuevo).

La explicación sería:
  • con LARGO(A1) obtengo el número total de caracteres

  • con LARGO(SUSTITUIR(A1;"a";"") obtengo el número de caracteres del texto después de eliminar todas las letra 'a' del texto de la celda A1; esto es, al sustituir en el texto original la letra "a" por 'nada' ("" en la fórmula).

  • Obviamente, al restar la primera de la segunda obtengo, por diferencia entre la situación inicial y posterior tras la eliminación de la 'a', cuántas letras 'a' hay en el texto analizado.


Si para automatizar dicho conteo, reemplazo el valor fijo "a" por una referencia a alguna celda podré calcular el número de veces que se repite cada letra del abecedario en el texto.
=LARGO(A1)-LARGO(SUSTITUIR(A1;C1;""))

Es importante resaltar que para Excel los caracteres con signos de acentuación son distintos a los que no lo llevan, por ejemplo, el caracter 'ó' es distinto de 'o'.

7 comentarios:

  1. Y SI QUISIERAMOS SEPARAR EN CELDAS INDIVIDUALES CADA UNA DE LAS PALABRAS QUE COMPONEN EL TEXTO CUAL SERIA LA FUNCION???

    ResponderEliminar
  2. Hola,
    soy partidario de llegar a una solución de la manera más rápida y con menos trabajo; asi que para contestar tu pregunta lo haría empleando la herramienta 'Texto en columnas'
    http://excelforo.blogspot.com/2010/09/la-herramienta-de-excel-texto-en.html

    De todas formas buscaré alguna solución con funciones.
    Slds

    ResponderEliminar
  3. Buen dia, como quedaria en codigo vba, pero de la siguiente manera, eliminar las letras finales repetidas, dejando solo 2 dos valores ejemplo "pensadores mexicanos petroleros", se quitarian las 2 ultimas letras e, una r, 2 letras o, una s.
    Es posible.

    ResponderEliminar
    Respuestas
    1. Hola José Luis,
      quizá empleando algún tipo de sustitución o reemplazamiento...
      No comprendo cuál es el criterio que expones, por lo que no puedo darte una solución clara
      Slds

      Eliminar
    2. Hola Ismael, gracias por responder, a ver si me doy a explicar mejor, tengo la frase en la celda b5="pensadores mexicanos petroleros", necesito quitar todas las letrar repetidas, pero solo dejando las 2 primeras.
      pensadores mexicanos petroleros
      pensadores mxican ptrl
      (asi es como debe quedar despues de correr la macro).
      Se eliminan las ultias letras repetidas solo dejando 2 de cada una al principio.

      Eliminar
    3. Hola,
      más claro ;-)
      gracias.

      La idea sería aplicar un bucle que recorra cada letra, asociándole un contador particular... con algún condicional marcaríamos la regla de mantener si el contador es menor o igual a 2, desestimando las demás...
      finalmente recomponemos con los caracteres que hayan quedado.

      Esto sería un desarrollo.. por lo que espero te sirva la idea.

      Saludos

      Eliminar
    4. si, gracias Ismael, ya tengo la idea. saludos

      Eliminar