Bagaimana saya bisa memformat byte sel di Excel sebagai KB, MB, GB dll?


88

Saya memiliki nilai dalam sel yang dalam byte. Tapi tidak ada yang bisa membaca 728398112238. Saya lebih suka mengatakan 678.37GB

Untuk menulis rumus untuk memformatnya relatif mudah (ini salah satunya: http://www.yonahruss.com/2007/02/format-excel-numbers-as-gb-mb-kb-b.html )

Tetapi apakah ada cara untuk melakukan ini sebagai 'format'? Saya ingin mendapatkan angka besar di sel, tetapi menampilkannya dalam format yang dapat dibaca manusia.


3
Catatan singkat jika Anda tertarik dengan hal-hal seperti ini: "kB" adalah standar (huruf kecil 'k', bukan huruf besar). Sumber: en.wikipedia.org/wiki/Kilobyte en.wikipedia.org/wiki/Kilo- Jika Anda tidak tertarik, silakan abaikan posting saya :)
PonyEars

Link di posting ini sudah mati. Berikut ini tautan lain ke solusi menggunakan rumus: social.technet.microsoft.com/Forums/en-US/…
Joost

Jawaban:


100

Anda tidak dapat benar-benar melakukan penghitungan dalam fitur pemformatan Excel. Anda dapat menggunakan sesuatu seperti berikut ini untuk melakukan perkiraan kasar:

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

1
Wow .. Anda sudah mengkonfirmasi kecurigaan saya bahwa saya tidak bisa melakukan perhitungan .. tapi solusi Anda jenius! Saya akan menggunakan itu atau sesuatu yang dekat. Terima kasih!
RickMeasham

6
Untuk setelan kawasan dengan '' sebagai pemisah seribu dan ',' sebagai pemisah koma: [<500000] # ## 0 "B"; [<500000000] # ## 0 "MB"; # ## 0 "GB"
Grastveit

1
Maaf, kode ini salah! Membagi dengan "5" atau 500000 akan mengubah nilai menjadi nilai yang sama sekali berbeda. Saya menggunakan nilai "569692" dan kode ini memberi saya "1 MB"
Alper t. Turker

54

Ini salah satu yang telah saya gunakan: -

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

Sepertinya bekerja dengan baik.


2
tidak sempurna (kelipatan 1000 vs 1024), tetapi cukup baik & suara positif. Terima kasih!
Skwerl

2
Kevin: kB / MB / GB benar-benar benar dengan kelipatan 1000 saja (sebagaimana ditentukan oleh SI, digunakan oleh Mac & hard-drive). Saya kira ini tidak mengubah yang Anda inginkan 1024 (lebih tepat ditulis KiB / MiB / GiB, seperti yang digunakan dalam GUI Linux) jadi hanya menunjukkan bahwa Windowslah yang mempertahankan notasi bersejarah dan membingungkan ini. Notasi biner distandarisasi abad lalu, jadi sudah saatnya mereka menggunakan program ini. ;-)
Luke Usherwood

1
Atau jika Anda menginginkan byte, KB, dan MB, bukan KB, MB, GB:[<1000]#" B";[<1000000]0.00," KB";0.00,," MB"
Aaron Campbell

13

Pendekatan pemformatan di atas berfungsi tetapi hanya untuk tiga tingkat. Di atas menggunakan KB, MB, dan GB. Di sini saya telah mengembangkannya menjadi enam. Klik kanan pada sel dan pilih Format Cells. Di bawah tab angka, pilih kustom. Kemudian di Type: kotak, letakkan yang berikut ini:

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

Kemudian pilih OK. Ini mencakup B, KB, dan MB. Lalu, dengan sel yang sama dipilih, klik pita Beranda, Pemformatan Bersyarat, Aturan Baru. Pilih Format hanya sel yang berisi. Kemudian di bawah dalam deskripsi aturan, Format hanya sel dengan, Nilai Sel, lebih besar dari atau sama dengan, 1000000000 (itu 9 nol.) Lalu klik Format, tab Angka, Kustom, dan di kotak Type :, letakkan yang berikut ini:

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

Pilih OK, dan OK. Pemformatan bersyarat ini akan mengambil alih hanya jika nilainya lebih besar dari 1.000.000.000. Dan itu akan menangani kisaran GB, TB, dan 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

Apa pun yang lebih besar dari PB hanya akan muncul sebagai PB yang lebih besar, misalnya 56.700 PB. Anda dapat menambahkan pemformatan bersyarat lainnya untuk menangani nilai yang lebih besar, EB, dan sebagainya.


1
Catatan kecil: jika di installatoin Anda memiliki lokal yang mengatur pemisah lain, ganti pemisah di string di atas dengan yang sesuai. Dalam bahasa saya, dan. ditukar jadi saya harus menggunakan: [<1000] ## 0,00 "B"; [<1000000] ## 0,00. "KB"; ## 0,00 .. "MB" dan [<1000000000000] ## 0,00 ... "GB"; [<1000000000000000] ## 0,00 .... "TB"; #. ## 0,00 ..... "PB"
user1708042

12

Meskipun kondisi format Excel hanya akan menampilkan 1 dari 3 kondisi yang terkait dengan ukuran angka (mereka mengkodekannya sebagai "positif; negatif; nol; teks" tetapi saya lebih suka melihatnya sebagai: if isnumber dan true; elseif isnumber dan false; elseif number; elseif adalah teks )

jadi bagi saya jawaban terbaik adalah komentar David dan Grastveit untuk format regional lainnya.

Ini yang saya gunakan tergantung pada laporan yang saya buat.

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

Ambil pilihanmu!


10

Sedikit perubahan untuk membuatnya berfungsi di wilayah saya, Eropa (. Sebagai pemisah ribuan, koma sebagai pemisah desimal):

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

Masih masalah yang sama pada konversi data (1000! = 1024) tetapi berhasil untuk saya.


4

Saya tidak tahu cara membuatnya menunjukkan kepada Anda gigabyte biner (kelipatan 1024 * 1024 * 1024) tetapi Anda dapat membuatnya menunjukkan kepada Anda gigabyte desimal menggunakan format seperti:

0.00,,,"Gb"

2
Perhatikan bahwa b adalah bit dan B adalah byte. Bit adalah 1/8 dari byte, jadi untuk menghindari kebingungan, selalu pastikan untuk menggunakan huruf yang benar. Hal yang sama berlaku untuk prefiks seperti M untuk mega (1000000 ×) dan m untuk mili (1/1000).
Liggliluff

Saya suka kesederhanaan. Meskipun bukan kelipatan 1.024, jawaban ini berguna.
satoc

Kelipatan 1024 tidak akan menjadi KB, MB, GB. Itu akan menjadi KiB, MiB, GiB.
Nilpo

4

Rumus di atas membutuhkan tanda minus di baris pertama: "= 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

Dan, solusi lainnya, adalah menggunakan notasi teknik. (Itu seperti notasi ilmiah kecuali eksponen selalu merupakan kelipatan 3.) Klik kanan pada sel dan pilih Format Sel. Di bawah tab angka, pilih kustom. Kemudian di Type: kotak, letakkan yang berikut ini:

##0.00E+00

Lalu klik OK. Alih-alih K, M, dll, Anda akan memiliki +3, +6, dll. Ini akan bekerja untuk bilangan positif dan negatif, serta eksponen positif dan negatif, -3 adalah m, -6 adalah u, dll.

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

Kurang dari Tera akan menulis di GB & lebih dari 999 GB menulis di TB

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

ATAU

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


1

Saya menggunakan CDH hadoop dan ketika saya mengekspor laporan excel, saya memiliki dua masalah;

1) konversikan tanggal Linux ke tanggal excel,
Untuk itu, tambahkan kolom kosong di sebelah kolom tanggal katakanlah baris atas adalah B4, tempelkan rumus di bawah ini dan seret "+" HITAM ke hari terakhir Anda di akhir kolom. Lalu sembunyikan kolom aslinya

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

2) Ubah ukuran disk dari byte ke TB, GB, dan MB
rumus terbaik untuk itu adalah ini

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

itu akan memberi Anda nilai dengan 3 desimal hanya memformat sel -> Kustom dan tempel kode di atas di sana


1

Ini sedikit "kekuatan kasar" tetapi berhasil;)

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

masukkan deskripsi gambar di sini


Hai, selamat datang di Stack Overflow. Saat menjawab pertanyaan yang sudah memiliki banyak jawaban, pastikan untuk menambahkan beberapa wawasan tambahan tentang mengapa tanggapan yang Anda berikan bersifat substantif dan tidak hanya menggemakan apa yang telah diperiksa oleh pembuat poster asli. Ini terutama penting dalam jawaban "hanya kode" seperti yang Anda berikan.
chb

1

Tempel ini di sebelah nilai Anda (byte) dan ini akan secara otomatis mengubahnya menjadi berapa pun ukuran nilai Anda.

=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

Semua jawaban di sini memberikan nilai dengan pangkat 10. Berikut adalah format menggunakan satuan SI yang tepat (kelipatan 1024, yaitu Mebibyte, Gibibytes, dan Tebibytes):

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

Ini mendukung MiB, GiB, dan TiB yang menunjukkan dua tempat desimal.


Anda membaginya dengan pangkat 10. MiB, GiB, dan TiB berarti 1024 ^ 2, 1024 ^ 3, 1024 ^ 4.
Sam

@Sam Anda mungkin melewatkan jawaban untuk komentar Anda.
kap

2
Tidak, @Sam benar. Jawaban ini dengan benar menggunakan 1024 kelipatan sebagai kondisi, tetapi pemformatannya masih berbasis 10.
Nilpo

0

Setelah melihat jawaban di sini, baru saja memperbaiki rumus ini untuk memiliki tempat desimal pada nilai yang lebih besar dan memenuhi nilai negatif.

=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
Pertanyaan asli menyertakan detail tentang penggunaan rumus. Tapi ini tentang menggunakan format angka. Solusi Anda sangat mirip dengan yang ditautkan kecuali Anda berurusan dengan angka negatif. Daripada menyertakannya dalam pernyataan IF terpisah, gunakan ABS () untuk mendapatkan nilai absolut.
RickMeasham

0

Saya menduga banyak jawaban di sini sudah usang, karena saya tidak mendapatkan hasil yang diharapkan dari jawaban yang diberikan.

Jika Anda memiliki nilai dalam KB yang ingin Anda format sesuai dengan ukurannya, Anda dapat mencoba yang berikut ini.


Rumus

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


Nilai Awal (dalam KB) => Output

952 => 952 KB

1514 => 1.51 MB

5122323 => 5.12 GB


0

Untuk hasil yang tepat, saya lebih suka menghitungnya, tetapi menggunakan format tampilan.

Dengan asumsi sel A1 memiliki nilai 29773945664927.

  1. Hitung jumlah koma di sel B1.

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

  2. Bagilah nilainya dengan 1024 ^ B1 di sel C1.

    = A1 / 1024 ^ B1

  3. Unit tampilan dalam sel D1.

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

  4. Sembunyikan sel B1.

tangkapan layar

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.