Как я могу форматировать байты ячейки в Excel как КБ, МБ, ГБ и т. д.?

У меня есть значение в ячейке, которая в байтах. Но никто не может прочитать 728398112238. Я бы предпочел сказать 678.37 GB

написать формулу, чтобы отформатировать ее относительно легко (вот один:http://www.yonahruss.com/2007/02/format-excel-numbers-as-gb-mb-kb-b.html)

но есть ли способ сделать это в 'формат'? Я хотел бы иметь большое число в ячейке, но отображать его как читаемый человеком формат.

10 ответов


вы не можете выполнять вычисления в функциях форматирования Excel. Вы можете использовать что-то вроде следующего, чтобы сделать хотя бы грубую оценку:

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

вот один, который я использовал: -

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

вроде работает нормально.


хотя условия формата Excel будут отображать только 1 из 3 условий, связанных с размером номера (они кодируют его как "положительный; отрицательный; ноль; текст" но я предпочитаю видеть его как : Если isnumber и true; elseif isnumber и false; число elseif; elseif-текст )

поэтому для меня лучшим ответом является комментарий Дэвида, а также Граствейта для другого регионального формата.

вот те, которые я использую в зависимости от отчетов я делать.

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

выбирай!


небольшое изменение, чтобы заставить его работать в моем регионе, Европе (. как разделитель тысяч, запятая как десятичный разделитель):

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

все та же проблема с преобразованием данных (1000 != 1024), но это делает работу для меня.


Я не знаю, как заставить его показать вам двоичные гигабайты (кратные 1024*1024*1024) но вы можете заставить его показать вам десятичные гигабайты, используя такой формат, как:

0.00,,,"Gb"

выше формула требует знак минус в первой строке: "=IF(A1

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

меньше, чем Tera будет писать на GB и более 999 GB писать на TB

[999]0.0,"ТБ"

или

[=1000]0.0," ТБ"


Я использую CDH hadoop, и когда я экспортирую отчет excel, у меня есть две проблемы;

1) преобразование даты Linux в дату excel,
Для этого добавьте пустой столбец рядом с столбцом даты, скажем, верхняя строка-B4, вставьте ниже формулу и перетащите черный "+" вплоть до вашего последнего дня в конце колонки. Затем скройте исходный столбец

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

2) преобразование размера диска из байта в ТБ, ГБ и МБ
лучшая формула для этого это

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

это даст вам значения с 3 знаками после запятой просто отформатируйте ячейки -- > Custom и вставьте вышеуказанный код туда


увидев ответы здесь, просто улучшили эту формулу, чтобы иметь десятичные знаки на больших значениях и обслуживать отрицательные значения.

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

Я подозреваю, что многие ответы здесь устарели, так как я не получил ожидаемого результата от данного ответа.

если у вас есть значение в КБ, которое вы хотели бы отформатировать в соответствии с размером, вы можете попробовать следующее.


Формула

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


начальное значение (в КБ) = > выход

952 =>952 KB

1514 =>1.51 MB

5122323 =>5.12 GB