Eliminar letras en un rango de celdas de números.

Hola patanrisitas, he dejado una pregunta en el tablón pero creo que hubiera sido mejor hacerla a un experto como tu.
Tengo que realizar un trabajo diario con unos archivos csv que manejan unos 6000 registros cada uno. El formato de este archivo es:
200434;972330753;105400393297798991#;Italia-MóvilWind;14-08-2008;08:55:52;00:03:31;0,49163
El problema lo tengo con el campo 105400393297798991#. En algunos casos puede cambiar y llegar 10540021265492478C# o con cualquier otra letra al final del numero y antes del #
Necesitaría una forma de buscar en este campo cualquier letra que exista y eliminarla sin eliminar el #.
Gracias de antemano por la ayuda.

1 respuesta

Respuesta
1
Q+ Trenkos...
¿De qué tamaño (Cuantos caracteres o rango) tiene ese campo?
Gracias por tu respuesta. Te comento:
.
El campo tiene un tamaño variable, puede tener 20 o más caracteres aunque no suele bajar de 14. Por ejemplo: 105400393297798991#. Sin embargo, este largo varía dependiendo del largo del numero telefónico.
.
Siempre finaliza (o debería, salvo error) en un #.
.
El problema es que justo antes de este # puede aparecer una indeseable letra que no he logrado controlar con la macro que realice para tratar el fichero.
.
El fichero luego se carga en una base de datos MySQL y en este momento recibo un error pues el campo numérico incluye una letra y descarta el registro por lo que debo anular la carga (que demora 1/2 hora) eliminar la letra a mano y recargar.
.
Podría pasarte la macro que tengo pero es muy larga para pegarla aquí. Si quieres te la envío por mail o algún otro medio.
Q+ Trenkos,
Crea en excel una hoja para bajar el archivo plano y una hoja adicional para validar
el campo con problemas
luego de convertir el texto en columnas la hoja de validación te arrojará los datos sin el error. Para eso debes aplicar estas fórmulas en la hoja de validación:
en A1 va =SI(Hoja1!A1="";"";Hoja1!A1)
en B1 va =SI(Hoja1!B1="";"";Hoja1!B1)
en C1 va =SI(B1="";"";SI(ESERROR(IZQUIERDA(DERECHA(Hoja1!C1;2);1)+0);EXTRAE(Hoja1!C1;1;+LARGO(Hoja1!C1)-2&"")&"#";Hoja1!C1))
Desde D1 hasta H1 van fórmulas silimares a las de A1 a C1
Prueba y me comentas...
Esta perfecto, solo tengo que adaptarlo a la macro que tengo pues la parte que valida si el campo esta vacío la hice con un while. Ademas en mi macro el # termina desapareciendo así que usaré esta fórmula pero le agregaré en el extraer un carácter más.
.
Me vino de maravilla gracias.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas