Как я могу отформатировать байты ячейки в Excel как КБ, МБ, ГБ и т. Д.? - PullRequest
69 голосов
/ 07 октября 2009

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

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

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

Ответы [ 13 ]

73 голосов
/ 08 октября 2009

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

[<500000]#,##0" B ";[<500000000]#,##0,," MB";#,##0,,," GB"
42 голосов
/ 30 августа 2011

Вот то, что я использовал: -

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

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

11 голосов
/ 06 января 2016

Хотя условия формата 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"

Сделай свой выбор!

7 голосов
/ 20 марта 2013

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

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

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

5 голосов
/ 14 ноября 2018

Приведенный выше подход к форматированию работает, но только для трех уровней. Выше используются КБ, МБ и ГБ. Здесь я расширил его до шести. Щелкните правой кнопкой мыши по ячейкам и выберите «Формат ячеек». На вкладке Number выберите Custom. Затем в поле Type: введите следующее:

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

Затем выберите ОК. Это охватывает B, KB и MB. Затем, выбрав те же ячейки, нажмите Домашняя лента, Условное форматирование, Новое правило. Выберите Форматировать только те ячейки, которые содержат. Затем, ниже в описании правила, Форматируйте только ячейки со значением ячейки, большим или равным, 1000000000 (это 9 нулей). Затем нажмите на вкладку Формат, Число, Пользовательский и в поле Тип: введите следующее:

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

Выберите ОК и ОК. Это условное форматирование вступит во владение, только если значение больше чем 1 000 000 000. И он позаботится о диапазонах GB, TB и 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

Все, что больше PB, будет отображаться как большее PB, например, 56 700 ПБ. Вы можете добавить другое условное форматирование для обработки еще больших значений, EB и так далее.

4 голосов
/ 08 октября 2009

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

0.00,,,"Gb"
3 голосов
/ 17 декабря 2017

Приведенная выше формула требует знака минус в первой строке: "= IF (A1 <-999500000000" * </p>

=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""")))))))))))
2 голосов
/ 14 ноября 2018

И еще одно решение заключается в использовании инженерных обозначений. (Это похоже на научную запись, за исключением того, что показатель степени всегда кратен 3.) Щелкните правой кнопкой мыши ячейку (я) и выберите Формат ячеек. На вкладке Number выберите Custom. Затем в поле Type: введите следующее:

##0.00E+00

Затем нажмите ОК. Вместо K, M и т. Д. У вас будет +3, +6 и т. Д. Это будет работать для положительных и отрицательных чисел, а также для положительных и отрицательных показателей, -3 - это m, -6 - это вы и т. Д.

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 голос
/ 05 апреля 2019

Это немного "грубой силы", но работает;)

=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 голос
/ 16 августа 2018

Я использую 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 и вставьте туда код выше

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...