2009-10-07 2 views
60

У меня есть значение в ячейке, которая находится в байтах. Но никто не может читать 728398112238. Я предпочел бы это сказать 678.37GBКак я могу форматировать байты ячейки в Excel в виде KB, MB, GB и т. Д.?

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

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

+1

Краткого примечания если все вы заинтересованы в вещах, как это: " kB "является стандартным (нижний регистр« k », а не верхний регистр). Источники: http://en.wikipedia.org/wiki/Kilobyte http://en.wikipedia.org/wiki/Kilo- Если вы aren ' t интересуюсь, пожалуйста, игнорируйте мой пост :) – PonyEars

+0

Ссылка в этом сообщении мертва. Вот еще одна ссылка на решение, использующее формулу: https://social.technet.microsoft.com/Forums/en-US/1063a039-f26b-4bfe-a9eb-2704ae0575dc/format-for-kbmbgbtb?forum=excel – Joost

ответ

65

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

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

Update: новая ссылка, как другие, кажется, стали устаревшими (хотя я был в состоянии нажать на него до сих пор) http://excel-answers.com/microsoft/Excel/34882622/using-comma-to-scale-large-numbers.aspx

+1

Wow .. вы подтвердили мое подозрение, что я не могу делать расчеты ... но ваше решение гениально! Я буду использовать это или что-то близкое. Благодаря! – RickMeasham

+3

Для региональных настроек с '' как разделитель тысяч и ',' как разделитель запятой: [<500000] # ## 0 "B"; [<500000000] # ## 0 "MB"; # ## 0 "GB " – Grastveit

+2

Веб-сайт eggheadcafe говорит:« Запрошенная вами страница была удалена ». – RyPeck

3

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

0.00,,,"Gb" 
37

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

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

Кажется, что он работает нормально.

+2

не совершенен (кратный 1000 против 1024), но достаточно хорош и поддерживается. благодаря! –

+1

Kevin: kB/MB/GB действительно правильна, только с 1000 экземплярами (как определено SI, используемым Mac и жесткими дисками). Я думаю, это не изменит, что вы хотите 1024 (более правильно написано KiB/MiB/GiB, как используется в графических интерфейсах Linux), поэтому просто указывая, что это Windows, которая поддерживает эту историческую и запутанную нотацию. Бинарная нотация была стандартизирована в прошлом столетии, поэтому настало время с программой. ;-) –

+0

Или если вы хотите использовать байты, КБ и МБ вместо KB, MB, GB: '[<1000] #" B "; [<1000000] 0.00," KB "; 0.00 ,," MB "' –

6

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

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

Тем не менее тот же вопрос о преобразовании данных, но это делает работа для меня.

0

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

=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

В исходный вопрос включены данные об использовании формулы. Но речь идет об использовании формата чисел. Ваше решение очень похоже на связанное, за исключением того, что вы имеете дело с отрицательными цифрами. Вместо того, чтобы включать их в отдельные заявления IF, используйте ABS(), чтобы получить абсолютное значение. – RickMeasham

7

Хотя условия в формате Excel будет отображать только 1 из 3-х условий, связанных с размером номера (они закодировать его как «положительна, отрицательна; ноль; текст», но я предпочитаю, чтобы увидеть его как: если ISNUMBER и trueif isnumber и false; elseif number; 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" 

Воспользуйтесь своим выбором!

2

Менее Tera будет писать на GB & больше 999 ГБ писать на ТБ

[< 1000] 0" ГБ "; [> 999] 0,0," Туберкулез»

ИЛИ

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

1

Выше формула требует знака минус в первой строке: "= 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"""))))))))))) 
Смежные вопросы