Función que devuelve sólo los números de una celda en LibreOffice

Elastix tiene una opción llamada address book en donde puedes buscar, agregar contactos y con sólo presionar un botón se puede marcar el teléfono directamente. Básicamente hace una conferencia, porque marca tu extensión y también el número telefónico de tu contacto.
Me pasaron una hoja de cálculo con más de 400 contactos, para importar tal cantidad de datos es necesario un archivo .csv con al menos 3 campos, nombre, apellidos y claro el número telefónico.

El problema es que el campo con el número telefónico estaba muy “contaminado”, demasiadas letras de más que probablemente el conmutador no iba a entender. Además necesitaba saber que números telefónicos eran válidos por su longitud. Por ejemplo un número local consta de 7 dígitos, pero una larga distancia nacional es de 12. Eso me ayudaría a detectar visualmente algunos problemas con los números.

Pero para lograrlo necesitaba una función que extrajerá sólo los números, sin guiones, sin paréntesis, sin anotaciones.

Afortunadamente encontré una función que hace algo muy similar en Extract a number from a text string, sólo que esta función también regresa algunos símbolos como el punto o signos de operación, afortunadamente es muy fácil de ajustar modificando la línea.

Numbers_And_Signs = "0123456789 .+-*/"

Con esto en mente hice mi propia función que sólo extrae números.

Function Only_Numbers(Text_From_Cell as string) as string
Numbers_And_Signs = "0123456789"
n = len(Text_From_Cell)
Only_Numbers = ""
For i = 1 to n
ActChar = Mid(Text_From_Cell,i,1)
if Instr(Numbers_And_Signs,ActChar)<>0 then Only_Numbers = Only_Numbers + ActChar
next i
end function

Ejemplos de la función only_numbers

Ejemplos de la función only_numbers | función solo numeros libreoffice
Ejemplos de la función only_numbers

Como pueden ver, la función hace un barrido del contenido de la celda que recibe la función, busca y filtra lo que ustedes quieran en la cadena Numbers_And_Signs, no sólo es útil para extraer números, de hecho les puede servir para filtrar cualquier conjunto de letras, números o símbolos que deseen.

Si no saben como agregar una función les recomiendo que lean Función para convertir de número a cantidad con letra en LibreOffice Calc. En ese artículo se explica muy bien como agregar una función en LibreOffice.

¡Me encantaría saber que opinas!

%d bloggers like this: