lunes, 6 de enero de 2020

Obtener listado ficheros directorio o carpeta (listado largo)

Retomando el ejemplo de la facturas para obtener un listado.

En este caso tenemos una carpeta con más de 100 ficheros.

En este caso el sistema del post anterior "https://pildorasofimaticas.blogspot.com/2020/01/obtener-listado-ficheros-directorio-o.html" no es aplicable, ya que el resultado de la instrucción dir no coge en pantalla, lo que complica la selección de los datos.



Para solventar esta dificultad, vamos a redirigir la salida del comando dir, a un fichero.

Esto quiere decir que en lugar de mostrar datos en la pantalla, escribirá esos mismos datos en el fichero de texto que le indiquemos.

Se puede redirigir la salida de cualquier comando de msdos a un fichero.

Para ello solo hay que ejecutar la instrucción deseada,seguida de uno o dos signos "mayor que" y el nombre del fichero a crear o actualizar.

Si se usa un solo signo "mayor que", como en este ejemplo dir > listado.txt, se creará un fichero, o si el fichero existe se eliminará y se creará un nuevo fichero vacío con ese nombre.

Es MUY IMPORTANTE asegurarse que el nombre del fichero no exista, pues los datos originales serían irrecuperables.

Si se usan dos signos "mayor que", como en este ejemplo dir >> listado.txt, se creará un fichero, o si el fichero existe se añadirán los datos a continuación de los datos existentes.

NOTA: Si no se indica la ruta de creación del fichero, este se creará en el directorio de trabajo actual.

En este caso la instrucción a usar será:

dir > listado.txt


Una vez escrito el comando, se ejecuta, pero no muestra ninguna información en pantalla.

Sin embargo si comprobamos cual es el fichero con la fecha de creación más reciente en ese directorio, veremos que ahora existe un fichero adicional llamado listado.txt, en el que está la información que se esperaba ver en la pantalla.



La ventaja de este método es que no tiene límite de líneas, mientras la pantalla del intérprete tiene un máximo, a partir del cual las líneas más antiguas desaparecen.

El contenido del fichero es el siguiente:




Obtener listado ficheros directorio o carpeta (listado corto)

En esta carpeta hay una serie de ficheros que simulan ser facturas.

Supongamos que nos solicitan obtener un listado de todas las facturas de las que tenemos ficheros en ese directorio o carpeta.

En el caso de ser pocos es factible hacer un listado a mano, pero si el número es algo mayor, es mejor recurrir a algo más sencillo.


En este caso, usando el comando dir de msdos, podríamos ver un listado en pantalla.


Si el listado coge en la pantalla del ordenador, la forma más sencilla es copiar el texto de la ventana del intérprete de msdos y pegarla en nuestra hoja de cálculo.

Para ello seleccionaremos el texto arrastrando con el ratón, hasta que todo el texto que nos interese esté resaltado.



Para poder copiar el texto, no se usa la combinación de tecla habitual CTRL + C, en su lugar es preciso pulsar la tecla Enter (también es posible copiar mediante el menú de la ventana dentro de la opción Editar.



Luego ya solo hace falta pegarlo en la aplicación que más nos interese, como puede ser un editor de texto como Microsoft Word, una Hoja de cálculo como Microsoft Excel o cualquier otra aplicación que admita pegar texto.



Para listados más largos es más cómodo redirigir la salida de pantalla del comando dir a un fichero.

domingo, 5 de enero de 2020

Importar Como Texto

Cuando se importa un fichero de texto o csv  a una Hoja de Cálculo como Microsoft Excel, este intenta detectar el tipo de dato según las primeras filas.

Esto puede provocar que haya datos que no se importen correctamente.

Para evitar eso es posible indicar el tipo de dato durante la importación. Esto también es válido para importar números y tratarlos como texto.

Como ejemplo importaremos el siguiente fichero:


Los datos son los siguientes:

codigoArticulo;Precio
1234567890;123,23
9876543214;547,15
8574965265;21,48
1236523658;2,45
0036523658;3,55
1A36523658;2,49
0C36523658;1,05



Para importar datos seleccionar Datos, Obtener datos externos, desde un archivo de texto



Para indicar el tipo de dato, en el tercer paso de la importación cambiar para el campo indicado el formato General por Texto, de esta forma Microsoft Excel no intenta adivinar que tipo de dato es:



De esta forma los datos son de tipo texto y no numéricos.


viernes, 27 de diciembre de 2019

Como detectar un dato no numérico en una lista de números una vez que se ha modificado la alineación de las celdas

En el post anterior veíamos como detectar números introducidos incorrectamente en una hoja de cálculo diferenciándolos por la alineación por defecto.

Este método era útil si no se había alterado la alineación.

Pero ¿como hacerlo si se ha unificado la alineación de toda la columna, y ya no es posible deshacer esa acción?

Supongamos que vemos eso tan feo, tan desalineado que, antes de guardar, alineamos todos nuestro números a la derecha, como es normal en una columna numérica, luego cerramos el Excel, o el Libreoffice.

Al volver a abrirlo, nos encontraremos algo así, y sin posibilidad de deshacer la acción del alineado.


Vamos a recuperar los colores del post anterior para diferenciar las celdas que no contienen datos numéricos.




Una opción poco conocida por muchos usuarios de Microsoft Excel es la posibilidad de personalización de la barra de estado.




Se trata de la barra que se encuentra en la parte inferior de la ventana del programa.

En ella se pueden mostrar datos de las celdas seleccionadas.

Los datos a mostrar se configuran haciendo clic con el botón derecho encima de la barra.

Entre los datos a mostrar, dos son de especial interés, estos son "Recuento" y "Recuento numérico"

El primero de ellos "Recuento" indica el número de celdas seleccionadas que contienen datos. Esto es celdas no vacías.

El segundo "Recuento numérico" indica el número de celdas seleccionadas que contienen datos numéricos.

Ante una columna que debería incluir solo datos numéricos la información mostrada por ambas cifras debería ser idéntica.

En nuestro caso, "Recuento" indica 13 celdas no vacías, mientras "Recuento numérico" indica 8 celdas con datos numéricos, por lo tanto quedan celdas no vacías pero con datos no numéricos.




NOTA:

Es habitual incluir una fila de títulos, si se hace esto, se deberá esperar que exista una unidad de diferencia entre el dato mostrado por ambas opciones.

A continuación se añade una fila de título y se corrigen os datos numéricos, vemos que ahora tenemos 14 filas no vacías de las cuales una es la de título y las otras 13 son numéricas.




Como detectar un dato no numérico en una lista de números si no se ha modificado el formato.

En ocasiones se puede dar el caso de que una Hoja de Cálculo arroje resultados que calculando manualmente no coinciden.

Cuando eso pasa, lo mas probable es que no se esté detectando e dato como número. Usualmente eso se debe a la inclusión de algún valor no correcto, por ejemplo espacios, comas en lugar de puntos, letras o en lugar de números cero, etc.

Si no se ha modificado el formato, más en concreto la alineación por defecto de las celdas, será relativamente sencillo encontrar los datos erróneos.

Teniendo en cuanta que, por defecto, las hojas de cálculo como Microsoft Excel, alinean los datos numéricos a la derecha y los textos a la izquierda, es fácil detectar los datos erróneos.

En la imagen siguiente, en las celdas amarillas, la colocación de los separadores de miles y los separadores decimales no son coherentes, por lo tanto se tratan como texto.

En la celda verde, se ha incluido un espacio para indicar la separación de los miles (un método usado en documentos de texto habitualmente, pero que provoca que las hojas de cálculo no reconozcan el dato correctamente)

En la celda azul se ha escrito por error una letra o en lugar de un cero.



Como se aprecia, todas las celdas erróneas aparecen alineadas a la izquierda como si fuesen un texto, mientras que las numéricas aparecen a la derecha.


 Este método es válido para pocas líneas y antes de haber alterado la alineación de las celdas.

lunes, 23 de diciembre de 2019

Como convertir valores numéricos almacenados como texto a datos numéricos (método 2 - Mediante una fórmula)

En el post anterior veíamos que en ocasiones Microsoft Excel no reconoce correctamente los datos numéricos tratándolos como textos.

Esto provoca que no sean válidos para hacer operaciones matemáticas, entre otras cosas.

En este caso vamos a ver como convertir eses datos mediante una sencilla fórmula de la hoja de cálculo.

Aunque el ejemplo se hará en Microsoft Excel, este ejemplo es válido para otras hojas de cálculo como Libreoffice Calc o Google Spreadsheets.

La fórmula a usar es valor, la cual recibe un único parámetro que es un número almacenado como texto.


Si todo va bien el resultado será una columna con los valores numéricos correspondientes.


Como ventaja adicional, con respecto al método anterior, la fórmula devolverá un error "#¡VALOR!" en caso de que alguno de los datos a convertir no pueda ser tratado como número.

En el siguiente ejemplo, en amarillo un texto "hola" y en verde un texto compuesto de caracteres alfanuméricos "125abc456"



Este método es preferible a la conversión seleccionando las celdas cuando los datos a convertir sean numerosos, pues es más sencillo hacer una fórmula y aplicarla a toda la columna que seleccionar la columna con el ratón.

Como convertir valores numéricos almacenados como texto a datos numéricos (método 1 - Seleccionando con el ratón)

En ocasiones Microsoft Excel reconoce datos numéricos como textos.

En estos casos se muestra un pequeño triángulo verde en la parte superior izquierda de la celda.




Convertir el  contenido de estas celdas en números reconocibles por Excel es sencillo.

Es preciso seleccionar con el ratón (no vale con el teclado, ya que no se muestra el menú emergente) todo el rango afectado.

Una vez finalizada la selección se mostrará un menú emergente en el que se indica que se han encontrado números almacenados como texto, permitiendo convertirlos a número.



Seleccionaremos la opción "Convertir en número", y automáticamente desaparecerá el triángulo verde, y por defecto cambiará la alineación hacia la derecha, quedando los datos como se muestra a continuación.