web-dev-qa-db-fra.com

Comment formater une cellule dans Excel en Ko, Mo, Go, etc.?

J'ai une valeur dans une cellule qui est en octets. Mais personne ne peut lire 728398112238. Je dirais plutôt 678.37GB

Pour écrire une formule afin de la formater relativement facilement (en voici une: http://www.yonahruss.com/2007/02/format-Excel-numbers-as-gb-mb-kb-b.html =)

Mais existe-t-il un moyen de faire cela en tant que "format"? J'aimerais avoir le grand nombre dans la cellule, mais l'afficher sous un format lisible par l'homme.

71
RickMeasham

Vous ne pouvez pas vraiment faire de calculs dans les fonctions de formatage d'Excel. Vous pouvez utiliser quelque chose comme ce qui suit pour faire une estimation approximative:

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

En voici un que j'ai utilisé: -

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

Semble bien fonctionner.

44
David Thornley

Bien que les conditions de format Excel n’affichent que l’une des trois conditions liées à la taille du nombre (elles le codent comme "positif; négatif; zéro; texte" mais je préfère le voir comme: si isnumber et true; elseif est le nombre et false; elseif le nombre; elseif est le texte)

donc, pour moi, la meilleure réponse est celle de David ainsi que celle de Grastveit pour un autre format régional.

Voici ceux que j'utilise en fonction des rapports que je fais.

[<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"

Faites votre choix!

11
Sebastien Simard

L'approche de formatage ci-dessus ne fonctionne que pour trois niveaux. KB, MB et GB utilisés ci-dessus. Ici, je l'ai étendu à six. Cliquez avec le bouton droit sur la ou les cellules et sélectionnez Formater les cellules. Sous l'onglet Nombre, sélectionnez Personnalisé. Ensuite, dans la zone Type:, mettez ce qui suit:

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

Puis sélectionnez OK. Cela couvre B, KB et MB. Ensuite, avec les mêmes cellules sélectionnées, cliquez sur le ruban Accueil, Mise en forme conditionnelle, Nouvelle règle. Sélectionnez Formater uniquement les cellules qui contiennent. Puis, ci-dessous, dans la description de la règle, Formater uniquement les cellules avec, Valeur de la cellule, supérieure ou égale à 1 000 000 (c'est-à-dire 9 zéros). Cliquez ensuite sur Format, onglet Numérique, Personnalisé, puis dans la zone Type:

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

Sélectionnez OK et OK. Cette mise en forme conditionnelle ne prendra le relais que si la valeur est supérieure à 1 000 000 000. Et il s’occupera des gammes GB, TB et 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

Tout ce qui est plus grand que PB apparaîtra simplement comme un plus gros PB, par exemple. 56 700 PB. Vous pouvez ajouter une autre mise en forme conditionnelle pour gérer des valeurs encore plus grandes, EB, etc.

8
Yrag00

Légère modification pour que cela fonctionne dans ma région, l’Europe (. Comme séparateur de milliers, virgule comme séparateur décimal):

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

Toujours le même problème sur la conversion de données (1000! = 1024), mais cela fait le travail pour moi.

7
Bruno

Je ne connais aucun moyen de le faire afficher en gigaoctets binaires (multiples de 1024 * 1024 * 1024), mais vous pouvez le faire afficher en gigaoctets décimaux en utilisant un format tel que:

0.00,,,"Gb"
4
Andru Luvisi

La formule ci-dessus nécessite un signe moins dans la première ligne: "= 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
swhgraham

Une autre solution consiste à utiliser la notation technique. (C'est comme la notation scientifique sauf que l'exposant est toujours un multiple de 3.) Cliquez avec le bouton droit de la souris sur la ou les cellules et sélectionnez Formater les cellules. Sous l'onglet Nombre, sélectionnez Personnalisé. Ensuite, dans la zone Type:, mettez ce qui suit:

##0.00E+00

Puis cliquez sur OK. Au lieu de K, M, etc., vous aurez +3, +6, etc. Cela fonctionnera pour les nombres positifs et négatifs, ainsi que pour les exposants positifs et négatifs, -3 est m, -6 est 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
2
Yrag00

Moins de ce que Tera écrira sur Go et plus de 999 Go à écrire sur TB

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

OR

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

1
Mored1984

J'utilise CDH hadoop et lorsque j'exporte un rapport Excel, j'ai deux problèmes;

1) convertir la date Linux en date Excel,
Pour cela, ajouter une colonne vide à côté de la colonne date permet de dire que la ligne du haut est B4, coller sous la formule et faire glisser le NOIR "+" jusqu'au dernier jour de votre fin de la colonne. Puis cache la colonne d'origine

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

2) Conversion de la taille du disque d'octet en To, en Go et en Mo
La meilleure formule pour cela est la suivante:

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

il vous donnera des valeurs avec 3 décimales juste formater les cellules -> Personnaliser et coller le code ci-dessus

1
hi-zir

C'est un peu une "force brute" mais ça marche;)

=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")))))

enter image description here

1

Je pense que beaucoup de réponses ici sont périmées, car je n’ai pas obtenu le résultat attendu de la réponse donnée.

Si vous avez une valeur en Ko que vous souhaitez formater en fonction de la taille, vous pouvez essayer ce qui suit.


Formule

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


Valeur initiale (en Ko) => Sortie

952 => 952 KB

1514 => 1.51 MB

5122323 => 5.12 GB

0
Ivan Skodje

Après avoir lu les réponses, nous venons d’améliorer la formule pour obtenir des décimales pour les valeurs les plus grandes et prendre en charge les valeurs négatives.

=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""")))))))))))
0
Stack Overflower