sábado, 31 de julio de 2021

Los calendarios del caos

Si algo ha sido un pequeño caos a lo largo de la historia de la humanidad, es el cálculo del tiempo.

En concreto los calendarios.

Sin llegar a meternos en calendarios como el maya, el chino, etc. en el propio mundo occidental tenemos nuestras dificultades para medir el tiempo.

https://es.wikipedia.org/wiki/Calendario_chino


En occidente, durante la mayor parte de la historia se han usado dos calendarios principalmente.

Primero el calendario implementado por el mismísimo Cayo Julio Cesar, el calendario Juliano, el cual ha estado en vigor hasta bien entrado el siglo XVI.



https://es.wikipedia.org/wiki/Calendario_juliano


A partir del año 1582, impulsado por el papa Gregorio XIII, fué sustituyendo poco a poco al calendario Juliano.




https://es.wikipedia.org/wiki/Calendario_gregoriano


El caso es que este calendario fué aplicado poco a poco por distintos paises del viejo continente, a lo largo del tiempo, provocando un desfase de fechas entre los países que tenían cada calendario.

Este cambio de calendarios en un país provocaba la desaparición de días. En cada país existe una serie de días, que realmente nunca han existido.

La imagen recogida de la wikipedia muestra el salto de fecha en un cambio de calendario.



Esto ha provocado que durante parte de los siglos XVI y XVII, en Europa convivían ambos calendarios, por ejemplo en España fué adoptado en el año 1582 mientras que en Inglaterra no se implantó hasta el año 1752, siendo Turquía el último país en adoptarlo en el año 1926.

https://es.wikipedia.org/wiki/Cambio_al_calendario_gregoriano

Como anécdota comentar que el día del libro se celebra el 23 de Abril, conmemorando el día del fallecimiento de do grandes escritores, Miguel de Cervantes Saavedra, y William Shakespeare.

Pero el año de la muerte de ambos, 1616 España ya había cambiado el calendario pero Inglaterra aún no. Aunque Shakespeare murió el 23 de abril de 1616 según el calendario Juliano, según el calendario gregoriano murió el 3 de mayo de ese año. Esto significa que Shakespeare pudo haber asistido personalmente al funeral de Cervantes.

Mas información en el siguiente enlace:

https://hablacultura.com/cultura-textos-aprender-espanol/curiosidades/cervantes-y-shakespeare-no-murieron-el-mismo-dia/


A pesar de que el calendario Gregoriano es más preciso sigue sin ser perfecto, por lo que es preciso el uso de algunos arreglos, como son el día adicional en los años bisiestos o el segundo intercalar.


Como curiosidad adicional, comentar que los años bisiesto no son solo cada cuatro años.

Un año es bisiesto si cumple los siguientes criterios:

  • Es bisiesto si es divisible entre 4.
  • Pero no es bisiesto si es divisible entre 100.
  • Pero sí es bisiesto si es divisible entre 400.

Una tercera curiosidad, en el calendario Gregoriano no existe el año Cero, se pasa directamente del año uno al menos uno.

Evidentemente esto se traslada a la informática.

Mañana aclararemos como se tratan los dato de fechas en las hojas de cálculo.

Nota: Derechos de las imágenes Wikipedia.

viernes, 30 de julio de 2021

Comparación precisión en distintas Hojas de Cálculo (Microsoft Excel, Libreoffice Calc y Google Sheets)

Comparación entre los distintos resultados en las distintas hojas de cálculo.

Mostramos un mismo ejemplo en tres distintas hojas de cálculo.

En Microsoft Excel tenemos un redondeo a 15 decimales, redondeando tanto los números de tarjeta como los de la suma.

El resultado es idéntico en Google Sheets que en Microsoft Excel.


En LibreOffice Calc encontramos una diferencia, ya que si es posible tratar los números de tarjeta sin pérdida de precisión, pero no así la suma.

Este es un tema a tener en cuenta a la hora de compartir una hoja de cálculo con otros usuarios.

jueves, 29 de julio de 2021

Perdida precisión en Libreoffice Calc

Toca comparar la precisión de Microsoft Excel con uno de sus competidores LibreOffice Calc.

Realizamos el mismo proceso copiamos los datos del fichero de texto que simulan números de tarjetas de crédito y los pegamos en una hoja de cálculo vacía de LibreOffice Calc.

En este caso el proceso es un poco distinto ya que al detectar el pegado LibreOffice Calc abre una ventana de importación de datos.

Cómo parece reconocer correctamente los datos numéricos pulsamos el botón aceptar y procedemos a la importación de los datos a la hoja de cálculo.

La primera sorpresa es que los datos se importan correctamente sin ningún tipo de redondeo.

También podemos constatar que los datos son numéricos y que permiten hacer operaciones con ellos.

Por lo tanto, queda demostrado que, la precisión para datos numéricos en LibreOffice Calc es mayor que en Microsoft Excel.


Procedemos a realizar el sumatorio de todos los números de tarjeta para ver qué número nos calcula LibreOffice Calc.


Nuevamente aparece el consabido formato exponencial.


Modificamos el formato de celda para no mostrar números decimales y que así nos muestre el número entero completo.


Aunque LibreOffice Calc soporta más precisión en los números enteros que en Microsoft Excel el resultado de esta suma supera la precisión admisible provocando un redondeo.


Podemos confirmar que la precisión en LibreOffice Calc es solo de un decimal más que en Microsoft Excel.

Cómo vemos el número calculado y el resultado correcto, realizando el cálculo a mano, no coinciden.


Está diferencia de precisiones puede provocar que una misma hoja de cálculo vista por 2 usuarios con dos programas distintos arroje resultados distintos.

Es, quizá, la primera cosa que tenemos que tener en cuenta, cuando un usuario nos diga que tiene un resultado y no se corresponda con el que nosotros vemos si tenemos los mismos datos de partida.

miércoles, 28 de julio de 2021

Mostrar más de 15 dígitos numéricos en Power BI

A diferencia de Microsoft Excel que solo es capaz de trabajar con 15 decimales en los números, en Power BI es posible trabajar con rangos mayores.

Si cargamos los datos de la tarjeta de crédito que estábamos usando estos días en Power BI ai veremos que se muestran los 16 dígitos sin ningún problema.


Aunque a priori al cargar los datos a través de power query parece que no se cargan correctamente ya que como vimos ayer al promover los encabezados se muestran en formato exponencial, power query para power bi es capaz de gestionar datos con mayor rango que Microsoft Excel.

De esta forma si en Power Query pinchamos en uno de los números, que se muestran en formato exponencial, veremos en la parte inferior el valor completo.


Al cargar los datos a power bi AI sin ningún tipo de cálculo veremos cómo se muestran correctamente y exactamente en el mismo formato en el que estaban en el fichero de texto, manteniendo la precisión del dato completo.


En este aspecto power bi hay es más preciso que Microsoft Excel ya que nos permite trabajar con números de mayor rango, sin perder precisión.

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.