martes, 27 de julio de 2021

Pérdida de decimales, también en Power Query

Ayer veíamos que en Microsoft Excel solo trabaja con 15 decimales de precisión.

Y que esto puede provocar que cualquier número al ser almacenado como un número entero con 15 decimales pierda los últimos dígitos de precisión.

Hoy veremos cómo resuelve este problema Power BI.

Comenzamos importando el mismo fichero de texto que pegábamos ayer en Microsoft Excel.

Es un listado en un fichero de texto, con varias líneas simulando ser números de tarjetas de crédito.

La peculiaridad de los números de las tarjetas de crédito es que están compuestos por 16 dígitos numéricos.

Power bi hay desde obtener datos accedemos a "Texto o CSV".

E importados el fichero de texto.

Al seleccionar ficheros no mostrar contenido de las primeras líneas, pulsamos el botón "Cargar".


Los datos se cargan y aparentemente están correctos.

El único detalle que debemos modificar es que ha cogido el encabezado como si fuera un dato.


Para solucionarlo vamos a la pestaña transformar y seleccionamos la opción "Usar primera fila como encabezado".

Construcción hacemos que power bi ai reconozca la primera fila de fichero de texto como el nombre de la Columna y use el resto de las filas como datos.

Sorprendentemente ahora ha cambiado el formato de los números de tarjeta apareciendo en el mismo formato que lo teníamos en Microsoft con el formato exponencial.

Esto se debe a que ahora power vía y usa el resto de las filas para decidir cuál es el tipo de los datos y como en este caso no encuentra ninguna letra les asigna un tipo numérico.

Al igual que en la mayoría de los lenguajes de programación el tipo numérico se almacena como una parte real y una parte decimal.

En el caso de power Query el funcionamiento es idéntico al de Microsoft Excel, sin embargo solo lo es a la hora de mostrar los datos, porque en realidad si que va a almacenar todos los dígitos.

Si deseamos ver los números de tarjeta completos en Power Query debemos convertir la columna a tipo texto de forma que se muestren todos los caracteres.

lunes, 26 de julio de 2021

Pérdida de decimales en Microsoft Excel

En todos los campos los conocimientos básicos son muy importantes.

Pero en cualquier campo relacionado con la informática son todavía más importantes.

Un ejemplo es entender en qué tipo de dato tenemos que guardar cada información.

Por ejemplo vamos a intentar guardar estos números de tarjeta de crédito simulados en Microsoft Excel.

Horoscop hemos de nuestro editor de texto preferido y los pegamos directamente en Excel, ya sea mediante el botón pegar o con la combinación de teclas CTRL + V.


Una vez pegado nos aparece en el conocido formato exponencial que suelen aplicar las calculadoras.

Microsoft Excel indica de esta forma que lo ha reconocido como un dato numérico pero que no es capaz de mostrarlo con todos sus dígitos.


Aunque empleamos al ancho de la columna seguimos sin poder ver todos los dígitos de nuestros números de tarjeta de crédito.


Decidimos cambiar el formato de las celdas para que no la muestre ningún decimal y así poder ver todos los números de la tarjeta de crédito.

Para ello con el botón derecho vamos al formato de celdas y ahí modificamos el formato para que sea un dato numérico.


En la pestaña número podemos ir en indicar que nos nos muestra en decimales en concreto le diremos que se nos muestran 0 posiciones decimales.

Aparentemente con esto hemos solucionado nuestro problema ya aparecen todos los dígitos que queremos ver.

Sin embargo si tenemos más datos y estamos un poquito atención nos daremos cuenta que hay algo extraño.

Todos los números de tarjeta acaban en CERO.


Podría ser una casualidad pero, parece extraño.

Comprobamos en el fichero original y nos damos cuenta que ninguno de los números de tarjeta de crédito acababa en cero.

Aquí os muestro una comparativa con las dos imágenes o propuestas para poder apreciar cuál es el error.


Parece extraño que todos los dígitos estén correctos excepto el último.

Esto se debe a que Microsoft Excel trabaja con números de punto flotante con una parte entera y 15 dígitos decimales.

Todo número microsoft Excel es almacenado internamente como un número decimal.

Y la máxima precisión que alcanza es de 15 dígitos incluso para los números enteros.

Cualquier dígito a partir del 15º se pierde.

Cuando tengamos datos que a pesar de contener solo cifras numéricas no vayan a usar a ser usados en cálculos lo mejor es almacenarlos como texto de esta forma podremos visualizar todos los caracteres que deseemos.

domingo, 25 de julio de 2021

Winrar comprimir indicando fecha y hora en nombre de fichero.

Mi aplicación de compresión preferida es desde hace mucho tiempo WinRAR.

Una de las muchas características que me encantan es la posibilidad de asignar una plantilla al nombre del fichero comprimido.

Esto permite que cada vez que se comprime un fichero se pueda generar con un nombre distinto.

Usualmente guardo versiones de los ficheros comprimidos, si se guarda siempre con el mismo nombre es fácil sobreescribir una versión anterior con el fichero nuevo.

Esto hará que perdamos el fichero anterior.

La solución es mover el fichero a otra carpeta o cambiarle el nombre.

Habitualmente añado la fecha y la hora al nombre del fichero.

Un fichero normal como este:

ejemplo.txt


Se convierte por defecto en;

ejemplo.rar


Pero lo ideal es algo como esto (nombre_añoMesDiaHoraMinutoSegundo.rar)

ejemplo_20210720075825.rar


De esta manera al comprimir el fichero ya no se sobreescribe.


La máscara usada es:

"_yyyymmddhhmmss"


En WinRAR esto se puede configurar en el menú "Settings".

Se abre la ventana de configuración con múltiples pestañas.


En la pestaña "Compression" pulsamos el botón "Create default ..."

El la pestaña "Backup" activamos la opción "Generate archive name by mask" y en la mascara indicamos el valor deseado, por ejemplo "_yyyymmddhhmmss".

Con esta configuración por defecto, al comprimir un fichero se creará el nombre con la máscara indicada.


Solo es preciso pulsar con el botón derecho, y elegir la opción Add to "ejemplo.rar"


El fichero creado presentará un nombre basado en la plantilla.


Si repetimos el proceso, un nuevo fichero será creado.


De esta forma ahorraremos mucho tiempo a la hora de comprimir ficheros y evitaremos errores y pérdidas de datos.

sábado, 24 de julio de 2021

Tablas dinámicas en Google Sheets

Google Sheets no soporta las tablas dinámicas en los libros de Microsoft Excel, pero tiene sus propias tablas dinámicas.


Cómo en cualquier otra hoja de cálculo, partimos de los datos seleccionados.

En Google Sheets accedemos al menú Data, Pivot tablet.

Nos pregunta dónde queremos crear la tabla dinámica, en la hoja actual o en una nueva.

Seleccionamos cualquier opción.

Se nos muestra una ventana similar a la que veríamos en Microsoft Excel.

Una ventana con los campos y otra con las partes de la tabla dinámica en la que colocar cada campo (filas, columnas, filtros, etc.)

El aspecto es muy similar al que presenta Excel.

Para el ejemplo movemos el campo códigoCliente a las filas y el campo cantidad en valores.

Al campo cantidad se le aplica el cálculo suma.

Automáticamente se muestra la tabla dinámica.

La funcionalidad es la misma que la de Excel.

viernes, 23 de julio de 2021

Comportamiento de tablas dinámicas descargadas de Google Sheets en formato Microsoft Excel

Ya hemos visto que las tablas dinámicas con segmentadores no son compatibles entre el Microsoft Excel y Google Sheets.

Sin embargo cuando abrimos un documento de Microsoft Excel en Google Sheets nos aparece un mensaje avísame nos podemos perder ciertas características si continuamos editando.

Hoy os mostraré que sucede en los dos casos si no cancelamos y no editamos la hoja o si la editamos.

Partidos de una hoja de Microsoft Excel con una tabla dinámica un segmentador y una escala de tiempo.

La subimos a Google Drive y la abrimos con Google Sheets.

Como el libro fiscal se nos muestra un recuadro en el lugar en el que estaban los alimentadores indicándonos que no debemos modificarlos.

En este primer ejemplo no los modificamos y cerramos el archivo.

Procedemos a salvarlo en formato xlsx para que se descargue nuestro ordenador y volvemos a abrirlo.

Sorprendentemente tras dos conversiones el formato sigue siendo idéntico al original permitiendo usar tanto la tabla dinámica como el segmentador y la escala de tiempo.


Repetimos el proceso pero en este caso sí que vamos a editar la hoja en Google Sheets.


Vamos a probar sin tocar ni la tabla dinámica ni los comentadores.

Cómo ejemplo vamos a introducir un texto aleatorio en una casilla y guardar el fichero.


Descargamos nuevamente el fichero a nuestro ordenador. 



Y lo abrimos con Microsoft Excel.

Podemos comprobar que al haber modificado una celda afectado a la hoja habiendo perdido tanto la tabla dinámica como los segmentadores y la escala de tiempo.




Esto demuestra que cualquier modificación en la hoja de cálculo nos hará perder nuestra tabla dinámica.

jueves, 22 de julio de 2021

Tablas dinámicas y segmentadores de Microsoft Excel a Google Sheets

Habitualmente utilizo tres programas de hoja de cálculo:

Microsoft Excel

Libreoffice Calc

Google Sheets


Cada una tiene sus peculiaridades.

Hoy veremos qué pasa si subimos una hoja de cálculo de Microsoft Excel con una tabla dinámica y segmentadores a Google Drive, y la abrimos con Google Sheets.

Lo primero que debemos tener en cuenta es que #GoogleSheets va a permitir convertir la hoja de #MicrosoftExcel al formato de Google, o editarla en el formato de Microsoft.

Partimos de esta hija de #Excel en formato XLSX.


En primer lugar la abrimos sin convertir, y se nos muestra un aviso acerca de que contiene algunas características de Microsoft Excel que no son compatibles y que si continuos editando se perderán.


Al intentar editar se muestra un aviso más grande.


Que nos lleva a una web en la que explican que puede que algunas características se pueden perder.


 Si no actualizamos, sucederá como en LibreOffice Calc, se mostrará un recuadro en el lugar de los segmentadores y las escalas de tiempo.

Si abrimos la versión convertida, automáticamente aparece el mencionado recuadro.


Además se puede ver que las tablas dinámicas tampoco funcionan.

Sin embargo eso resulta algo un tanto extraño, al comprobar que Google Sheets si que soporta sus propias tablas dinámicas.



miércoles, 21 de julio de 2021

Slicers modificados en Libreoffice Calc abiertos en Microsoft Excel

Hemos visto que los segmentadores no son compatibles con LibreOffice Calc.

Si abrimos una hoja de cálculo creada con Microsoft Excel en la que se hayan incluido segmentadores o escalas de tiempo, al abrirlas en LibreOffice aparecerán deshabilitadas


Si modificamos la hoja sin tocar los recuadros de los segmentadores, al volver a abrirla en Microsoft Excel, vuelven a activarse.

Pero, si por cualquier motivo, modificamos los recuadros que representan a los segmentadores, la cosa cambia.

Al no ser LibreOffice Calc compatible con los segmentadores, cualquier modificación que hagamos en ellos, provocará que no se puedan usar más tarde en Microsoft Excel.


Sim embargo esto no sucede con la tabla dinámica, la cual puede ser alterada sin problema.

En este caso modificamos el ancho en LibreOffice Calc, como se hizo con los segmentadores.

Y al volver a abrirla en Microsoft Excel, es totalmente funcional.



Cómo resumen, solo usemos segmentadores si nuestros usuarios van a usar Microsoft Excel, en caso de que puedan usar LibreOffice Calc, es mejor recurrir a los clásicos filtros.