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

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

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

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

Ответ 1

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

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

Ответ 2

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

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

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

Ответ 3

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

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

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

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

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

Ответ 4

Приведенный выше подход к форматированию работает, но только для трех уровней. Выше используются КБ, МБ и ГБ. Здесь я расширил его до шести. Щелкните правой кнопкой мыши по ячейкам и выберите "Формат ячеек". На вкладке 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 PB. Вы можете добавить другое условное форматирование для обработки еще больших значений, EB и так далее.

Ответ 5

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

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

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

Ответ 6

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

0.00,,,"Gb"

Ответ 7

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

Ответ 8

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

##0.00E+00

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

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

Ответ 9

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

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

ИЛИ

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

Ответ 10

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

Ответ 11

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

=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

Ответ 12

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

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

Ответ 13

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

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


формула

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


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

952 => 952 KB

1514 => 1.51 MB

5122323 => 5.12 GB

Ответ 14

Для точного результата я бы лучше рассчитал его, но с использованием формата отображения.

Предполагая, что ячейка A1 имеет значение 29773945664927.

  1. Подсчитайте количество запятых в ячейке B1.

    = QUOTIENT (LEN (А1) -1, 3)

  2. Разделите значение на 1024 ^ B1 в ячейке C1.

    = A1/1024 ^ B1

  3. Дисплей в ячейке D1.

    = ПЕРЕКЛЮЧАТЕЛЬ (B1, 5, "PB", 4, "TB", 3, "GB", 2, "MB", 1, "KB", 0, "B")

  4. Скрыть ячейку B1.

screenshot