** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Otros de Microsoft: Windows y Office > Excel
  Mensajes nuevos Mensajes nuevos RSS - Contar la repetición de un carácter en ce
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoContar la repetición de un carácter en ce

 Responder Responder
Autor
Mensaje
Elisa Ver desplegable
Habitual
Habitual
Avatar

Unido: 21/Mayo/2009
Localización: España
Estado: Sin conexión
Puntos: 87
Enlace directo a este mensaje Tema: Contar la repetición de un carácter en ce
    Enviado: 06/Julio/2010 a las 12:28
Hola amigos foreros!
 
Tengo una celda que contienen una cadena de texto con referencias separadas por el carácter "|", por ejemplo:
 
ref1|ref2|ref3|ref4
 
Lo que necesito es saber el número de referencias que hay en la celda. Para ello, se me había ocurrido intentar contar el número de veces que se repite el carácter "|" dentro de la celda. Pero no sé cómo hacer esto.
 
Hay alguna manera de contar el número de veces que se repite un carácter dentro del texto de una celda?
 
Gracias por la atención.
 
Un saludo,
 
Elisa
 
 
Arriba
prga Ver desplegable
Moderador
Moderador


Unido: 16/Noviembre/2004
Localización: España
Estado: en línea
Puntos: 3285
Enlace directo a este mensaje Enviado: 06/Julio/2010 a las 13:34
Hola.
Entre otras formas, prueba en una celda con algo parecido a:
=LARGO(A1)-LARGO(SUSTITUIR(A1;"|";""))
Ya comentas.
Un saludo a todos
Arriba
paty Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 01/Abril/2006
Localización: Colombia
Estado: Sin conexión
Puntos: 5
Enlace directo a este mensaje Enviado: 06/Julio/2010 a las 21:46

Hola:

Una forma de lograr lo que necesitas es descomponer el texto que tienes en una celda y pasarlo a un caracter por celda. es decir, en vez de que en (A1) escribas ref1|ref2|ref3|ref4 los puedes descomponer  asi: en (A1) "r" (B1) "e" (C1) "f" y asi sucesivamente...luego, con un contar.si calculas la cantidad de "|" que hay; te paso el codigo de una macro que descompone el texto y cuenta el numero de "|" que hay:
coloca el texto "ref1|ref2|ref3|ref4" en la celda A1 y ejecuta la macro, depronto te sirve para lo que necesitas.
 
Sub Busca_caracter()
'MACRO QUE DESCOMPONE EL TEXTO DE UNA CELDA
'COLOCANDO UN CARACTER POR CELDA

Range("B1").Select
ActiveCell.FormulaR1C1 = "=LEN(RC[-1])" 'NUMERO DE CARACTERES DEL TEXTO A EVALUAR
NUMCARACTER = ActiveCell
CONTADOR = 1
Range("D1").Select
Do Until CONTADOR > NUMCARACTER
    Range("C1") = CONTADOR
    ActiveCell.FormulaR1C1 = "=MID(RC1,R1C3,1)"
    'COPIAS Y PEGAS EL RESULTADO COMO VALORES PARA QUE NO SE VEA AFECTADA LA FORMULA
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    CONTADOR = CONTADOR + 1
    ActiveCell.Offset(0, 1).Select
Loop
'FINALMENTE, TENIENDO UN CARACTER POR CELDA
'APLICAS LA FORMULA CONTAR.SI
'Y TE DIRA CUANTOS "|" HAY EN EL TEXTO
 ActiveCell.FormulaR1C1 = "=COUNTIF(RC[-19]:RC[-1],""|"")"
End Sub
 
Obviamente el método que te sugirio prga es muchisimo más práctico


Editado por paty - 06/Julio/2010 a las 21:53
Arriba
oirausu Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 25/Diciembre/2005
Localización: España
Estado: Sin conexión
Puntos: 4217
Enlace directo a este mensaje Enviado: 06/Julio/2010 a las 22:15
Publicado originalmente por prga prga escribió:

Hola.
Entre otras formas, prueba en una celda con algo parecido a:
=LARGO(A1)-LARGO(SUSTITUIR(A1;"|";""))
Ya comentas.
Un saludo a todos
 
Prueba lo que te propone prga, y prueba tambien
 
=LARGO(A1)-LARGO(SUSTITUIR(A1;"|";""))+1
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable