Forum Discussion
Convertir bytes a KB/MB/GB
He utilizado el siguiente código para crear una fórmula para convertir bytes en KB, MB, GB, TB. El cálculo parece ser correcto, pero cuando validamos el tamaño entre la nube de Azure y Power BI, hay una ligera diferencia de tamaño.
Por ejemplo:
Tengo un tamaño de archivo 49106756748 bytes, cuando se convierte a GB, muestra 45,73 GB en Power BI, mientras que Azure muestra 49,16 GB.
Después de hacer una búsqueda en Google, el tamaño que se muestra como 45,73 GB es Gibibytes, mientras que 49,16 GB es el tamaño correcto de Gigbyte.
No estoy seguro de cómo cambiar el cálculo para mostrar el valor de GB en lugar del valor de Gibibyte en Power BI. La fórmula utilizada actualmente es:
6 Replies
- Syndicate_Admin
Administrator
@rajiramk ¿Cambiar 1024 a 1000? GB Vs GiB: ¿Cuál es la diferencia? - MASV (massive.io)
- Syndicate_Admin
Administrator
Gracias Greg por la ayuda. Perdón por la respuesta desagradable.
- Syndicate_Admin
Administrator
Gracias por su respuesta. Traté de cambiar, no ayudó. Obtuve lo mismo (45.73 GB)
- Syndicate_Admin
Administrator
@rajiramk Oh, duh, también necesitas modificar tus declaraciones POWER. GiB se basa en potencias de 2^10 = 1024. GB se basa en potencias de 10, 10^3 = 1000.
- Syndicate_Admin
Administrator
El motivo de la discrepancia en la representación de tamaño entre Power BI y Azure se debe a la diferencia entre "Gigabytes" (GB) y "Gibibytes" (GiB). El formato de Power BI usa "Gibibytes" (GiB), que se basa en el sistema binario, mientras que Azure podría usar "Gigabytes" (GB), que se basa en el sistema decimal. 1 GB se define normalmente como 1.000.000.000 bytes, mientras que 1 GiB se define como 1.073.741.824 bytes.
Si desea mostrar el tamaño en "gigabytes" (GB) como lo hace Azure, puede modificar la fórmula DAX para dar cabida a la definición decimal de un gigabyte. Esta es una versión ajustada de la fórmula:
'''DAX
Tamaño =
VAR total = SUM(Consulta1[Tamaño de los datos]) + 0
DEVOLUCIÓN
SI (
total < 1024,
FORMAT(total, "#0.0# B"),
SI (
total < 10000000000, -- Compruebe si el tamaño es inferior a 1 GB (decimal)
FORMAT(total / 1024, "#0.0# KB"),
SI (
total < 10000000000 * 1000, -- Compruebe si el tamaño es inferior a 1 TB (decimal)
FORMAT(total / 1000000000, "#0.0# GB"),
FORMAT(total / (1000000000 * 1000), "#0.0# TB")
)
)
)
```Esta fórmula modificada utiliza divisiones decimales para calcular el tamaño en GB y TB. Debería alinearse más estrechamente con la representación que se ve en Azure, que normalmente se basa en gigabytes y terabytes decimales.
- Syndicate_Admin
Administrator
@Alef_Ricardo_ disculpa por la respuesta tardía. Usé esta lógica, pero para el valor de MB obtengo 00.0000KB ya que no hay condición para MB, así que modifiqué la lógica a:
También obtengo TB también 00000.00000TB (EX: 13903384.45TB).
¿Pueden ayudarme con esto? Soy nuevo en PowerBI.
Tamaño de Ingestion_MB =FUERON total =SUMA ( Consulta1[Tamaño de los datos]) + 0DEVOLUCIÓNSI (total < 1024,FORMATO ( total, "#0.0# B" ),SI (total < 1000000000,FORMATO ( total / 1024, "#0.00# KB" ),SI (total < 1000000000,FORMATO ( total / 10000, "#0.0# MB" ),SI (total < 1000000000*1000,FORMATO ( total / 1000000000, "#0.0# GB" ),FORMATO ( DIVIDIR(total / 1000000000*1000,1000000), "#0.00# TB" )))))