Estadísticas de Google Analytics

    generado por GADWP 

    Material registrado:

    Safe Creative #1709190281730

Extraer los números de entre las letras

Limpieza de datos contaminados

Hay una serie de problemas típicos que aparecen al trabajar con datos importados de otros programas o con listados de diversa procedencia que llegan a nuestras manos en forma de archivo de Excel. Entre estos problemas típicos figura el del expurgue, poda, entresacado o limpieza de datos que nos han llegado «contaminados». En terminología menos rural y más técnica, hablamos de un grupo de problemas que encajan en lo que se suele llamar «extracción de datos». Ya son varios los tutoriales en video que sobre el tema de extracción de datos se pueden ver en mi canal, pero el que me propongo resolver aquí es un caso concreto en el que nos han llegado cadenas de caracteres sembrados aquí y allá de números. Pues bien, son los números los que queremos extraer. Por ejemplo:

Del dato: añsh3áojsg5lihet41kajrn62, necesitamos extraer la cadena de números: 354162 y convertirlo al número 354.162

Del dato: 85agrg52agsrarw74, necesitamos extraer la cadena de números:855274 y convertirlo al número 855.274

Y así lo mismo con una lista de, digamos cientos o miles de registros. Estamos, como dije antes, ante un problema típico, pero un problema para el que las utilidades normales de las hojas de cálculo no están preparadas. No queda más remedio que abordar el problema mediante la creación de una macro, en este caso, de una función definida por el usuario (UDF) que ya usamos antaño para otro problema similar y que nos va a venir que ni pintada para resolver nuestro problema.

Planteamiento completo del problema

Nos ha llegado un archivo de texto con extensión «txt» en el, al estilo de los dos ejemplos que he dado antes, sabemos que vienen una serie de cifras que necesitamos sumar y promediar. El problema es que cada una de estas cifras viene perdida, diseminada, desmembrada entre un galimatías de caracteres. Nuestra misión es extraer los números de entre las letras para poder luego operar con ellos.

Hace aproximadamente un años publiqué en mi antigua web IdeasExcel dos funciones que realizaban este tipo de tareas. Veamoslas una a una aplicadas al problema en cuestión. Les he cambiado el nombre de acuerdo a la funcionalidad que desarrollan. Una de ellas efectúa labores de escoba, barriendo los caracteres que le hemos dado en una lista separada por comas, y la otra efectúa labores de criba, dejando pasar solo los caracteres dados también en la misma forma.

Criba o escoba para limpiar caracteres de una cadena
Criba o escoba para limpiar caracteres de una cadena

Función funcESCOBA

Esta primera función actúa como una «escoba», barriendo del texto original «qTexto» los caracteres que especifiquemos en el argumento qSignos, que daremos separados por comas.

Function funcESCOBA(qSignos As String, qTexto As String)

Funcion funcESCOBA–quita del texto qTexto,

‘los caracteres especificados en el argumento qSignos

Dim i As Long

funcESCOBA = “”

For i = 1 To Len(qTexto)

    If Not (Mid(qTexto, i, 1) Like “[“ & qSignos & “]”) Then

        funcESCOBA = funcESCOBA & Mid(qTexto, i, 1)

    End If

Next i

End Function

Función funcCRIBA

Esta segunda función actúa como una «criba», dejando pasar del texto original «qTexto» solo los caracteres que especifiquemos en el argumento qSignos, que daremos separados por comas.

Function funcCRIBA(qAlfabeto As String, qTexto As String)

Funcion soloLetras–Deja pasar del texto qTexto,

‘solo los caracteres especificados en el argumento qAlfabeto

Dim i As Long

funcCRIBA= “”

For i = 1 To Len(qTexto)

    If (Mid(qTexto, i, 1) Like “[“ & qAlfabeto & “]”) Then

        funcCRIBA= funcCRIBA& Mid(qTexto, i, 1)

    End If

Next i

End Function

Extraer los números de entre las letras

Para ver ambas funciones en acción, nada mejor que el siguiente tutorial en video.

Comments

So empty here ... leave a comment!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Sidebar



Si continuas utilizando este sitio, significa que aceptas el uso de cookies. más información

Los ajustes de cookies de esta web están configurados para "permitir cookies" y así ofrecerte la mejor experiencia de navegación posible. Si sigues utilizando esta web sin cambiar tus ajustes de cookies o haces clic en "Aceptar" estarás dando tu consentimiento a esto.

Cerrar