¿Cómo puedo formatear bytes en una celda en Excel como KB, MB, GB, etc.?


86

Tengo un valor en una celda que está en bytes. Pero nadie puede leer 728398112238. Prefiero que diga 678,37 GB

Para escribir una fórmula para formatearla relativamente fácil (aquí hay una: http://www.yonahruss.com/2007/02/format-excel-numbers-as-gb-mb-kb-b.html )

¿Pero hay alguna forma de hacer esto como un 'formato'? Me gustaría tener el número grande en la celda, pero que se muestre en formato legible por humanos.


3
Nota rápida si está interesado en cosas como esta: "kB" es estándar ('k' minúscula, no mayúscula). Fuentes: en.wikipedia.org/wiki/Kilobyte en.wikipedia.org/wiki/Kilo- Si no está interesado, ignore mi publicación :)
PonyEars

El enlace de esta publicación está muerto. Aquí hay otro enlace a una solución utilizando una fórmula: social.technet.microsoft.com/Forums/en-US/…
Joost

Respuestas:


98

Realmente no puede hacer cálculos en las funciones de formato de Excel. Sin embargo, puede usar algo como lo siguiente para hacer una estimación aproximada:

[<500000]#,##0" B";[<500000000]#,##0,," MB";#,##0,,," GB"

1
Vaya ... has confirmado mi sospecha de que no puedo hacer cálculos ... ¡pero tu solución es genial! Usaré eso o algo parecido. ¡Gracias!
RickMeasham

6
Para configuraciones regionales con '' como separador de miles y ',' como separador de comas: [<500000] # ## 0 "B"; [<500000000] # ## 0 "MB"; # ## 0 "GB"
Grastveit

1
Lo siento, pero este código es incorrecto. Dividir por "5" o 500000 convertirá el valor en uno completamente diferente. Usé el valor "569692" y este código me dio "1 MB"
Alper t. Turker

53

Aquí hay uno que he estado usando: -

[<1000000]0.00," KB";[<1000000000]0.00,," MB";0.00,,," GB"

Parece funcionar bien.


2
no perfecto (múltiplos de 1000 vs 1024), pero lo suficientemente bueno y votado. ¡Gracias!
Skwerl

2
Kevin: kB / MB / GB es realmente correcto con múltiplos de 1000 solamente (como lo define SI, usado por Mac y discos duros). Supongo que esto no cambia el hecho de que desea 1024 (KiB / MiB / GiB escrito más correctamente, como se usa en las GUI de Linux), así que solo señala que es Windows el que mantiene esta notación histórica y confusa. La notación binaria se estandarizó el siglo pasado, por lo que es hora de que lo hagan con el programa. ;-)
Luke Usherwood

1
O si desea bytes, KB y MB en lugar de KB, MB, GB:[<1000]#" B";[<1000000]0.00," KB";0.00,," MB"
Aaron Campbell

12

Aunque las condiciones del formato de Excel solo mostrarán 1 de 3 condiciones relacionadas con el tamaño del número (lo codifican como "positivo; negativo; cero; texto", pero prefiero verlo como: si es número y verdadero; elseif es número y falso; elseif número; elseif es texto )

entonces, para mí, la mejor respuesta es el comentario de David y Grastveit para otros formatos regionales.

Estos son los que uso según los informes que hago.

[<1000000]#,##0.00," KB";[<1000000000]#,##0.00,," MB";#,##0.00,,," GB"

[>999999999999]#,##0.00,,,," TB";[>999999999]#,##0.00,,," GB";#.##0.00,," MB"

[<1000000]# ##0,00 " KB";[<1000000000]# ##0,00  " MB";# ##0,00   " GB"

[>999999999999]# ##0,00    " TB";[>999999999]# ##0,00   " GB";# ##0,00  " MB"

¡Elige tu opción!


12

El enfoque de formato anterior funciona, pero solo para tres niveles. Lo anterior utilizó KB, MB y GB. Aquí lo he ampliado a seis. Haga clic derecho en la (s) celda (s) y seleccione Formato de celdas. En la pestaña Número, seleccione Personalizado. Luego, en el cuadro Tipo :, ponga lo siguiente:

[<1000]##0.00"  B";[<1000000]##0.00," KB";##0.00,," MB"

Luego seleccione Aceptar. Esto cubre B, KB y MB. Luego, con las mismas celdas seleccionadas, haga clic en la cinta Inicio, Formato condicional, Nueva regla. Seleccione Dar formato solo a las celdas que contienen. Luego, debajo de la descripción de la regla, Formatee solo celdas con, Valor de celda, mayor o igual a, 1000000000 (eso es 9 ceros). Luego haga clic en Formato, pestaña Número, Personalizado, y en el cuadro Tipo:, coloque lo siguiente:

[<1000000000000]##0.00,,," GB";[<1000000000000000]##0.00,,,," TB";#,##0.00,,,,," PB"

Seleccione Aceptar y Aceptar. Este formato condicional se hará cargo solo si el valor es mayor que 1,000,000,000. Y se ocupará de los rangos GB, TB y PB.

567.00  B
  5.67 KB
 56.70 KB
567.00 KB
  5.67 MB
 56.70 MB
567.00 MB
  5.67 GB
 56.70 GB
567.00 GB
  5.67 TB
 56.70 TB
567.00 TB
  5.67 PB
 56.70 PB

Cualquier cosa más grande que PB se mostrará como un PB más grande, por ejemplo, 56,700 PB. Puede agregar otro formato condicional para manejar valores aún mayores, EB, etc.


1
Una nota menor: si en una instalación tiene una configuración regional que prescribe otros separadores, reemplace los separadores en las cadenas de arriba con los adecuados. En mi idioma y. se intercambian, así que tuve que usar: [<1000] ## 0,00 "B"; [<1000000] ## 0,00. "KB"; ## 0,00 .. "MB" y [<1000000000000] ## 0,00 ... "GB"; [<1000000000000000] ## 0,00 .... "TB"; #. ## 0,00 ..... "PB"
usuario1708042

10

Ligero cambio para que funcione en mi región, Europa (. Como separador de miles, coma como separador decimal):

[<1000000]#.##0,00" KB";[<1000000000]#.##0,00.." MB";#.##0,00..." GB"

Sigue siendo el mismo problema en la conversión de datos (1000! = 1024) pero hace el trabajo por mí.


4

No conozco una forma de hacer que le muestre gigabytes binarios (múltiplos de 1024 * 1024 * 1024) pero puede hacer que le muestre gigabytes decimales usando un formato como:

0.00,,,"Gb"

2
Tenga en cuenta que b es bit y B es byte. Un bit es 1/8 de un byte, así que para evitar confusiones, asegúrese siempre de usar la letra correcta. Lo mismo ocurre con los prefijos como M para mega (1000000 ×) y m para mili (1/1000).
Liggliluff

Me gusta la sencillez. Incluso si no es múltiplo de 1,024, esta respuesta es útil.
Satoc

3

La fórmula anterior requiere un signo menos en la primera línea: "= IF (A1 <-999500000000"

=IF(A1<-999500000000,TEXT(A1,"#,##.#0,,,"" TB"""),
IF(A1<-9995000000,TEXT(A1,"#,##.#0,,,"" GB"""),
IF(A1<-9995000,TEXT(A1,"#,##0,,"" MB"""),
IF(A1<-9995,TEXT(A1,"#,##0,"" KB"""),
IF(A1<-1000,TEXT(A1,"#,##0"" B """),
IF(A1<0,TEXT(A1,"#,##0"" B """),
IF(A1<1000,TEXT(A1,"#,##0"" B """),
IF(A1<999500,TEXT(A1,"#,##0,"" KB"""),
IF(A1<999500000,TEXT(A1,"#,##0,,"" MB"""),
IF(A1<999500000000,TEXT(A1,"#,##.#0,,,"" GB"""),
TEXT(A1,"#,##.#0,,,,"" TB""")))))))))))

3

Y otra solución más es utilizar la notación de ingeniería. (Eso es como la notación científica, excepto que el exponente es siempre un múltiplo de 3.) Haga clic con el botón derecho en la (s) celda (s) y seleccione Formato de celdas. En la pestaña Número, seleccione Personalizado. Luego, en el cuadro Tipo :, ponga lo siguiente:

##0.00E+00

Luego haga clic en Aceptar. En lugar de K, M, etc., tendrás +3, +6, etc. Esto funcionará para números positivos y negativos, así como para exponentes positivos y negativos, -3 es m, -6 es u, etc.

567.00E-06
  5.67E-03
 56.70E-03
567.00E-03
  5.67E+00
 56.70E+00
567.00E+00
  5.67E+03
 56.70E+03
567.00E+03
  5.67E+06

1

Menos de Tera escribirá en GB y más de 999 GB escribirá en TB

[<1000] 0 "GB"; [> 999] 0,0, "TB"

O

[<1000] 0 "GB"; [> = 1000] 0.0, "TB"


1

Utilizo CDH hadoop y cuando exporto el informe de Excel, tengo dos problemas;

1) convierta la fecha de Linux en una fecha de Excel,
para eso, agregue una columna vacía al lado de la columna de la fecha, digamos que la fila superior es B4, pegue la fórmula debajo y arrastre el NEGRO "+" hasta su último día al final del columna. Luego oculta la columna original

=(((B4/1000/60)/60)/24)+DATE(1970|1|1)+(-5/24)

2) Convierta el tamaño del disco de byte a TB, GB y MB,
la mejor fórmula para eso es esta

[>999999999999]# ##0.000,,,," TB";[>999999999]# ##0.000,,," GB";# ##0.000,," MB"

le dará valores con 3 decimales, solo formatee las celdas -> Personalizar y pegue el código anterior allí


1

Es un poco de "fuerza bruta" pero funciona;)

=IF(E4/1000<1;CONCATENATE(E4;" bps");IF(E4/1000<1000;CONCATENATE(ROUND(E4/1000;2);" kbps");IF(E4/1000000<1000;CONCATENATE(ROUND(E4/1000000;2);" mbps");IF(E4/1000000000<1000;CONCATENATE(ROUND(E4/1000000000;2);" gbps")))))

ingrese la descripción de la imagen aquí


Hola, bienvenido a Stack Overflow. Al responder una pregunta que ya tiene muchas respuestas, asegúrese de agregar información adicional sobre por qué la respuesta que está brindando es sustantiva y no simplemente se hace eco de lo que ya ha sido examinado por el póster original. Esto es especialmente importante en respuestas de "solo código", como la que proporcionó.
chb

1

Pegue esto junto a sus valores (bytes) y esto lo cambiará automáticamente a cualquiera que sea su tamaño de valor.

=IF(G10>=1099511627776,CONCATENATE(ROUND((G10/1024/1024/1024/1024),1)," TB"),IF(G10>=1073741824,CONCATENATE(ROUND((G10/1024/1024/1024),1)," GB"),IF(G10>=1048576,CONCATENATE(ROUND((G10/1024/1024),1)," MB"),IF(G10>=1024,CONCATENATE(ROUND((G10/1024),1)," KB"),IF(G10>=1,CONCATENATE((G10)," BYTES"),0)))))


1

Todas las respuestas aquí proporcionan valores con potencias de 10. Aquí hay un formato que usa las unidades SI adecuadas (múltiplos de 1024, es decir, Mebibytes, Gibibytes y Tebibytes):

[>1099511627776]#.##,,,," TiB";[>1073741824]#.##,,," GiB";0.##,," MiB"

Esto admite MiB, GiB y TiB que muestran dos decimales.


0

Después de ver las respuestas aquí, acabo de mejorar esta fórmula para tener posiciones decimales en valores más grandes y atender valores negativos.

=IF(A1<999500000000,TEXT(A1,"#,##.#0,,,"" TB"""),
IF(A1<-9995000000,TEXT(A1,"#,##.#0,,,"" GB"""),
IF(A1<-9995000,TEXT(A1,"#,##0,,"" MB"""),
IF(A1<-9995,TEXT(A1,"#,##0,"" KB"""),
IF(A1<-1000,TEXT(A1,"#,##0"" B """),
IF(A1<0,TEXT(A1,"#,##0"" B """),
IF(A1<1000,TEXT(A1,"#,##0"" B """),
IF(A1<999500,TEXT(A1,"#,##0,"" KB"""),
IF(A1<999500000,TEXT(A1,"#,##0,,"" MB"""),
IF(A1<999500000000,TEXT(A1,"#,##.#0,,,"" GB"""),
TEXT(A1,"#,##.#0,,,,"" TB""")))))))))))

1
La pregunta original incluía detalles sobre el uso de una fórmula. Pero se trata de utilizar un formato numérico. Su solución es muy similar a la vinculada, excepto que trata con números negativos. En lugar de incluirlos en declaraciones IF separadas, use ABS () para obtener el valor absoluto.
RickMeasham

0

Sospecho que muchas de las respuestas aquí están desactualizadas, ya que no obtuve el resultado esperado de la respuesta dada.

Si tiene un valor en KB que le gustaría formatear de acuerdo con el tamaño, puede intentar lo siguiente.


Fórmula

[<1000]#" KB ";[<1000000]#0,00 " MB";0,## " GB"


Valor inicial (en KB) => Salida

952 => 952 KB

1514 => 1.51 MB

5122323 => 5.12 GB


0

Para obtener el resultado exacto, prefiero calcularlo, pero usando formato de visualización.

Suponiendo que la celda A1 tiene el valor 29773945664927.

  1. Cuente el número de comas en la celda B1.

    = COCIENTE (LEN (A1) -1,3)

  2. Divida el valor por 1024 ^ B1 en la celda C1.

    = A1 / 1024 ^ B1

  3. Unidad de visualización en celda D1.

    = INTERRUPTOR (B1, 5, "PB", 4, "TB", 3, "GB", 2, "MB", 1, "KB", 0, "B")

  4. Ocultar la celda B1.

captura de pantalla

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.