Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Una tarea corriente es importar archivos de texto a Excel, para lo cual existen varias posibilidades. Otra tarea similar es generar un archivo texto para exportar datos de una hoja Excel a una aplicacin externa. Algunas de estas aplicaciones aceptan archivos texto con formato .csv (comma separated values); otras aplicaciones exigen archivos texto delimitado con tabulaciones. En ambos casos usamos el men Guardar como y elegimos alguna de las opciones de texto
Si elegimos la opcin .csv Excel genera un archivo de texto cuyos campos estn delimitados por comas. Supongamos esta hoja Excel
Si
la
exportamos
usando
la
opcin
.csv
obtenemos
este
resultado
Como
pueden
ver,
un
archivo
texto
cuyos
campos
estn
separados
por
";".
En los casos de exportar a una aplicacin que no acepta este formato, usamos la opcin texto delimitado con tabulaciones. El resultado es
El problema surge cuando la aplicacin a la cual queremos exportar los datos exige que los campos tengan una longitud determinada. En esta nota mostraremos como crear un archivo texto con campos de longitud determinada por el usuario.
A la hoja Excel que contiene los datos a exportar la llamaremos "BD" (base de datos). Agregamos una fila por encima de la fila 1, de manera que los encabezamientos queden en la fila 2. Ahora ponemos en las celdas correspondientes de la fila 1 el "ancho" deseado para cada campo
El prximo paso consiste en agregar una hoja, que llamaremos "ascii". En celda A1 de esta hoja ponemos esta frmula
=BD!A3&REPETIR("
";BD!A$1-LARGO(BD!A3))
Esta frmula crea un valor compuesto por el contenido de la celda A3 (siendo 3 la primer
fila de la hoja BD con datos a exportar) y una cantidad de espacios en blanco hasta completar el largo deseado para el campo. En nuestro caso "Jorge" tiene un largo de cinco, pero el campo "Nombre" tiene que tener 15. Los 10 espacios necesarios son calculados por la Copiamos esta expresin frmula a lo largo del BD!A$1-LARGO(BD!A3) rango necesario
Ahora tenemos que guardar esta hoja como archivo texto delimitado con tabulaciones, tal como mostramos ms arriba. Es recomendable crear una copia de la hoja usando la opcin Mover o copiar (clic con el botn derecho en la pestaa de la hoja) a un libro nuevo y asegurndonos de haber sealado la opcin "crear una copia"
Al guardar este nuevo libro, que contiene slo la hoja con los datos, recibimos este mensaje
Apretamos
"Si"
guardamos
el
libro.
El
resultado
es
Como
ven,
el
ancho
de
los
campos
est
de
acuerdo
nuestras
definiciones.
Un problema potencial se presenta cuando el largo del valor de la celda en BD es mayor que el ancho requerido para el campo.
Por ejemplo, si el ancho para el campo "Ciudad" es slo de 15 caracteres, cuando ponemos Santiago de Chile (17 caracteres) en la hoja BD, obtensmo un resultado de error en la hoja "ascii"
Esto se debe a que la funcin REPETIR no puede aceptar un nmero negativo como segundo En esto casos tenemos dos argumento. opciones:
1 cambiar el parmetro del ancho del campo (lel valor en la celda C1 en nuestro ejemplo); 2 cambiar la frmula para que "recorte" el texto al ancho requerido, desechando los caracteres supernumerarios. Para eso usamos esta frmula
=SI(LARGO(BD!C5)>BD!C$1;IZQUIERDA(BD!C5;BD!C$1);BD!C5&REPETIR(" LARGO(BD!C5)))
";BD!C$1-
que
nos
dar
como
resultado
es decir, recortando Santiago de Chile (17 caracteres) a Santiago de Chi (15 caracteres).