Excel: Encontrar grupos de 4 letras o mas en rango de celdas

Hola, enserio que me la pase buscando por todas partes pero no doy una. Mi problema es este:

Necesito me ayuden a obtener las cadenas de texto que sean de mas de 3 letras e ignore los números.

Ejemplo:

123rob33d34f | rob (puede que me traiga el texto o simplemente indique que tiene o no tiene)

agua1234asd | agua (puede ser con un 1 para decir que tiene o 0 para decir que no)

123f21Cctierra | Cctierra

as12345cuba1233aguila | cubaaguila

No importa como me traiga los textos si juntos, con espacios o como sea, lo que me interesa aquí es identificar cuales de las celdas en la columna pueden tener palabras, la condición dice que son palabras aquellas que tengan mas de 3 letras juntas

O bien si alguien sabe hacerlo en Access o en Mysql no importa la idea es que se pueda.

Atención: Tengo prohibido usar macros, pero si consideran que no hay mas solución pues el código VBA no me vendría mal pero de VBA no se absolutamente nada.

Por favor espero ayuda de alguien, es muy importante obtener una respuesta para esto, me la podría pasar días investigando pero como siempre el jefe lo quiere para ya!

1 respuesta

Respuesta
1

Te mando mi solución con una macro, sigue mis instrucciones:

-Escribe uno de esos datos en la celda A1.

-Ahora posiciónate en la celda A1 y después ejecuta esta macro:

Sub letras()
'por luismondelo
columna = 2
tope = Len(ActiveCell)
For x = 1 To tope + 1
extrae = Mid(ActiveCell, x, 1)
If extrae = "" And Len(lista) > 3 Then
Cells(1, columna).Value = lista
lista = ""
columna = columna + 1
End If
If Not IsNumeric(extrae) Then
lista = lista & extrae
End If
If IsNumeric(extrae) And Len(lista) > 3 Then
Cells(1, columna).Value = lista
lista = ""
columna = columna + 1
End If
If IsNumeric(extrae) And Len(lista) < 3 Then
lista = ""
End If
Next
End Sub

recuerda finalizar la consulta

Esta super bien es exacto lo que pedí, em.. solo una preguntilla, precisamente como desconozco 100% el lenguaje, solo me podrías ayudar a aclarar cuales son las partes que definen que imprima el resultado en las celdas b, c etc..? es que quiero cambiarle algo para que... Pues es que son mas de 135,000 registros.

De antemano muchas gracias enserio!!!

Si tienes tangos registros y los tienes apilados en una columna de excel basta con que te posiciones en el primer registro de esa columna y ejecutes esta macro:

Sub letras()
'por luismondelo
columna = activecell.offset(0,1).column
do while activecell.value <>""
tope = Len(ActiveCell)
For x = 1 To tope + 1
extrae = Mid(ActiveCell, x, 1)
If extrae = "" And Len(lista) > 3 Then
Cells(1, columna).Value = lista
lista = ""
columna = columna + 1
End If
If Not IsNumeric(extrae) Then
lista = lista & extrae
End If
If IsNumeric(extrae) And Len(lista) > 3 Then
Cells(1, columna).Value = lista
lista = ""
columna = columna + 1
End If
If IsNumeric(extrae) And Len(lista) < 3 Then
lista = ""
End If
Next
activecell.offset(1,0).select
columna = activecell.offset(0,1).column
loop
End Sub

recuerda finalizar

Muchas gracias, la verdad ya me dio pena preguntar mas, creo que empiezo a entenderle un poco al código, ahora solo resta hacer que los resultados los imprima en su respectiva fila por que todo lo hace en la misma.

Muchas gracias por todo el apoyo!! Creo que se muchas cosas de MySQL igual y me hago experto para apoyar las dudas de por acá!

Un saludo Cordial y Abrazo fuerte! feliz fin de semana!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas