Excel'de bir hücreyi KB, MB, GB vb. Olarak nasıl biçimlendirebilirim?


88

Bayt cinsinden bir hücrede bir değerim var. Ama kimse 728398112238 okuyamaz. 678.37GB demeyi tercih ederim.

Biçimlendirmek için nispeten kolay bir formül yazmak için (işte bir tane: http://www.yonahruss.com/2007/02/format-excel-numbers-as-gb-mb-kb-b.html )

Ama bunu bir 'format' olarak yapmanın bir yolu var mı? Hücrede büyük sayının olmasını ama insan tarafından okunabilir formatta görüntülenmesini istiyorum.


3
Bunun gibi şeylerle ilgileniyorsanız hızlı bir şekilde not edin: "kB" standarttır (büyük harf değil, 'k' küçük harf). Kaynaklar: en.wikipedia.org/wiki/Kilobyte en.wikipedia.org/wiki/Kilo- İlgilenmiyorsan, lütfen gönderimi dikkate almayın :)
PonyEars

Bu gönderideki bağlantı kesildi. İşte formül kullanan bir çözüme başka bir bağlantı: social.technet.microsoft.com/Forums/en-US/…
Joost

Yanıtlar:


100

Excel'in biçimlendirme özelliklerinde gerçekten hesaplama yapamazsınız. Yine de kabaca bir tahmin yapmak için aşağıdaki gibi bir şey kullanabilirsiniz:

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

1
Vay be .. hesap yapamayacağım şüphemi doğruladınız .. ama çözümünüz dahice! Bunu veya yakın bir şeyi kullanacağım. Teşekkürler!
RickMeasham

6
"Bin ayırıcı olarak" ve "virgül ayırıcı olarak", "bölgesel ayarlar için: [<500000] # ## 0" B "; [<500000000] # ## 0" MB "; # ## 0" GB "
Grastveit

1
Üzgünüm ama bu kod yanlış! "5" veya 500000'e bölmek, değeri tamamen farklı bir değere dönüştürür. "569692" değerini kullandım ve bu kod bana "1 MB" verdi
Alper t. Turker

54

İşte kullanmakta olduğum bir tanesi: -

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

İyi çalışıyor gibi görünüyor.


2
mükemmel değil (1000'e 1024'ün katları), ancak yeterince iyi ve olumlu oy verildi. Teşekkürler!
Skwerl

2
Kevin: kB / MB / GB yalnızca 1000'in katları için gerçekten doğrudur (SI tarafından tanımlandığı gibi, Mac ve sabit sürücüler tarafından kullanılır). Sanırım bu 1024 (Linux GUI'lerinde kullanıldığı gibi daha doğru yazılan KiB / MiB / GiB) istediğinizi değiştirmiyor, bu yüzden sadece bu tarihi ve kafa karıştırıcı gösterimi koruyan Windows olduğuna dikkat edin. İkili notasyon geçen yüzyılda standartlaştırıldı, bu yüzden programa başlamalarının tam zamanı. ;-)
Luke Usherwood

1
Veya KB, MB, GB yerine bayt, KB ve MB istiyorsanız:[<1000]#" B";[<1000000]0.00," KB";0.00,," MB"
Aaron Campbell

13

Yukarıdaki biçimlendirme yaklaşımı işe yarıyor, ancak yalnızca üç düzey için. Yukarıdakiler KB, MB ve GB kullandı. Burada onu altıya çıkardım. Hücreleri sağ tıklayın ve Hücreleri Biçimlendir'i seçin. Numara sekmesinin altında Özel'i seçin. Ardından Tür: kutusuna aşağıdakileri girin:

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

Ardından Tamam'ı seçin. Bu, B, KB ve MB'yi kapsar. Ardından, aynı hücreler seçiliyken Giriş şeridi, Koşullu Biçimlendirme, Yeni Kural'a tıklayın. Yalnızca içeren hücreleri biçimlendir'i seçin. Ardından, kural açıklamasının altında, Yalnızca şu hücreleri biçimlendir, Hücre Değeri, 1000000000 (bu 9 sıfırdır) büyük veya eşittir. Ardından Biçim, Sayı sekmesi, Özel'e tıklayın ve Tür: kutusuna aşağıdakileri girin:

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

Tamam'ı ve Tamam'ı seçin. Bu koşullu biçimlendirme, yalnızca değer 1.000.000.000'dan büyükse devreye girer. Ve GB, TB ve PB aralıklarıyla ilgilenecek.

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'den daha büyük herhangi bir şey daha büyük bir PB olarak görünecektir, örneğin 56.700 PB. Daha da büyük değerleri, EB'yi vb. İşlemek için başka bir koşullu biçimlendirme ekleyebilirsiniz.


1
Küçük bir not: bir kurulumda, diğer ayırıcıları belirten bir yerel ayarınız varsa, yukarıdaki dizelerdeki ayırıcıları uygun olanlarla değiştirin. Benim dilimde ve. değiştirildi, bu yüzden kullanmak zorunda kaldım: [<1000] ## 0,00 "B"; [<1000000] ## 0,00. "KB"; ## 0,00 .. "MB" ve [<1000000000000] ## 0,00 ... "GB"; [<1000000000000000] ## 0,00 .... "TB"; #. ## 0,00 ..... "PB"
user1708042

12

Excel biçim koşulları yalnızca sayı boyutuyla ilgili 3 koşuldan 1'ini gösterecek olsa da (bunu "pozitif; negatif; sıfır; metin" olarak kodlarlar, ancak şu şekilde görmeyi tercih ederim: if isnumber ve true; elseif isnumber ve false; elseif number; elseif metindir )

bu yüzden bana göre en iyi cevap David'in yanı sıra Grastveit'in diğer bölgesel formatlar için yaptığı yorumdur.

İşte yaptığım raporlara bağlı olarak kullandıklarım.

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

İstediğini al!


10

Bölgemde, Avrupa'da (binlik ayırıcı olarak, ondalık ayırıcı olarak virgül) çalışmasını sağlamak için küçük değişiklik:

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

Veri dönüştürme konusunda hala aynı sorun (1000! = 1024) ama benim için işi yapıyor.


4

Size ikili gigabayt (1024 * 1024 * 1024'ün katları) göstermesini sağlayacak bir yol bilmiyorum, ancak aşağıdaki gibi bir format kullanarak ondalık gigabaytları göstermesini sağlayabilirsiniz:

0.00,,,"Gb"

2
B'nin bit ve B'nin bayt olduğunu unutmayın. Bir bit, baytın 1 / 8'i kadardır, bu nedenle karışıklığı önlemek için her zaman doğru harfi kullandığınızdan emin olun. Aynısı, mega için M (1000000 ×) ve milli için m (1/1000) gibi önekler için de geçerlidir.
Liggliluff

Basitliği seviyorum. 1.024'ün katları olmasa bile bu cevap faydalıdır.
satoc

1024'ün katları zaten KB, MB, GB olmaz. KiB, MiB, GiB olacaktır.
Nilpo

4

Yukarıdaki formül, ilk satırda bir eksi işareti gerektirir: "= 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

Ve yine başka bir çözüm, mühendislik notasyonu kullanmaktır. (Bu, üs her zaman 3'ün katı olması dışında bilimsel gösterim gibidir.) Hücreleri sağ tıklayın ve Hücreleri Biçimlendir'i seçin. Numara sekmesinin altında Özel'i seçin. Ardından Tür: kutusuna aşağıdakileri girin:

##0.00E+00

Ardından Tamam'ı tıklayın. K, M vb. Yerine +3, +6, vb. Elde edersiniz. Bu, pozitif ve negatif sayıların yanı sıra pozitif ve negatif üsler için de işe yarar, -3 m'dir, -6 eşittir u, vb.

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

Tera'dan azı GB'ye yazacak ve TB'ye 999 GB'den fazla yazacak

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

VEYA

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


1

CDH hadoop kullanıyorum ve excel raporunu dışa aktardığımda iki sorunla karşılaşıyorum;

1) Linux tarihini excel tarihine dönüştürün, Bunun
için, tarih sütununun yanına boş bir sütun ekleyin, üst satırın B4 olduğunu söyleyelim, formülün altına yapıştırın ve SİYAH "+" işaretini son gününüze kadar sürükleyin . sütun. Ardından orijinal sütunu gizleyin

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

2) Disk boyutunu bayttan TB'ye, GB'ye ve MB'ye dönüştürün
bunun için en iyi formül şudur

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

size 3 ondalık değerler verecek, sadece hücreleri biçimlendirin -> Özel ve yukarıdaki kodu buraya yapıştırın


1

Biraz "kaba kuvvet" ama işe yarıyor;)

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

görüntü açıklamasını buraya girin


Merhaba, Stack Overflow'a hoş geldiniz. Zaten birçok cevabı olan bir soruyu cevaplarken, lütfen verdiğiniz cevabın neden esaslı olduğuna ve orijinal gönderen tarafından halihazırda incelenmiş olanı tekrarlamadığına dair bazı ek bilgiler eklediğinizden emin olun. Bu, sağladığınız gibi "yalnızca kod" yanıtlarında özellikle önemlidir.
chb

1

Bunu değerlerinizin (bayt) yanına yapıştırın ve bu otomatik olarak değer boyutunuz ne olursa olsun onu değiştirecektir.

=IF(G10>=1099511627776,CONCATENATE(ROUND((G10/1024/1024/1024/1024),1)," TB"),IF(G10>=1073741824,CONCATENATE(ROUND((G10/1024/1024/1024),1)," GB"),IF(G10>=1048576,CONCATENATE(ROUND((G10/1024/1024),1)," MB"),IF(G10>=1024,CONCATENATE(ROUND((G10/1024),1)," KB"),IF(G10>=1,CONCATENATE((G10)," BYTES"),0)))))


1

Buradaki tüm yanıtlar 10'un katları olan değerleri sağlar. İşte uygun SI birimlerini kullanan bir format (1024'ün katları, yani Mebibayt, Gibibayt ve Tebibayt):

[>1099511627776]#.##,,,," TiB";[>1073741824]#.##,,," GiB";0.##,," MiB"

Bu, iki ondalık basamak gösteren MiB, GiB ve TiB'yi destekler.


10'luk bir kuvvetle bölüyorsunuz. MiB, GiB ve TiB, 1024 ^ 2, 1024 ^ 3, 1024 ^ 4 anlamına gelir.
Sam

@Sam muhtemelen yorumunuzun cevabını kaçırdınız.
kap

2
Hayır, @Sam doğru. Bu yanıt, koşul olarak 1024 katını doğru bir şekilde kullanır, ancak biçimlendirme hala 10 tabanlıdır.
Nilpo

0

Buradaki cevapları gördükten sonra, bu formülde daha büyük değerler üzerinde ondalık basamaklara sahip olmak ve negatif değerleri karşılamak için geliştirildi.

=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
Orijinal soru, formül kullanımına ilişkin ayrıntıları içeriyordu. Ama bir sayı biçimi kullanmakla ilgili. Negatif sayılarla uğraşmanız dışında, çözümünüz bağlantılı olana çok benzer. Bunları ayrı EĞER ifadelerine dahil etmek yerine, mutlak değeri elde etmek için ABS () kullanın.
RickMeasham

0

Verilen cevaptan beklenen sonucu alamadığım için buradaki cevapların çoğunun güncelliğini yitirmiş olduğundan şüpheleniyorum.

Boyuta göre biçimlendirmek istediğiniz KB cinsinden bir değeriniz varsa, aşağıdakileri deneyebilirsiniz.


Formül

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


Başlangıç ​​Değeri (KB cinsinden) => Çıktı

952 => 952 KB

1514 => 1.51 MB

5122323 => 5.12 GB


0

Kesin sonuç için, hesaplamayı tercih ederim, ancak görüntüleme formatını kullanırdım.

A1 hücresinin 29773945664927 değerine sahip olduğu varsayılır.

  1. B1 hücresindeki virgül sayısını sayın.

    = QUOTIENT (UZUNLUK (A1) -1,3)

  2. Değeri C1 hücresindeki 1024 ^ B1'e bölün.

    = A1 / 1024 ^ B1

  3. D1 hücresindeki görüntü birimi.

    = ANAHTAR (B1, 5, "PB", 4, "TB", 3, "GB", 2, "MB", 1, "KB", 0, "B")

  4. B1 hücresini gizle.

ekran görüntüsü

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.