Bagaimana cara memformat sel Microsoft Excel 2007 dalam heksadesimal?

26

Saya ingin memformat sel dalam Microsoft Excel 2007 dalam heksadesimal tetapi saya tidak menemukan cara melakukan ini.

Apakah ada cara bawaan untuk mengubah basis dari 10 menjadi 16 untuk sebuah sel?

WilliamKF
sumber

Jawaban:

14

Seperti disebutkan sebelumnya, rumus = DEC2HEX (A1) dikonversi menjadi hex, dan DEC2HEX (A1,8) dikonversi menjadi hex dengan 0 awalan untuk menunjukkan 32 bit. Saat menambahkan angka 0 di depan membuat angka lebih mudah dibaca, terutama jika Anda menggunakan font titik tetap, versi heks dan desimal bisa tercampur ketika semua angka dalam angka tersebut adalah 0-9 (mis. 327701 = 50015).

Perbaikan adalah menambahkan awalan "0x". Ada 2 cara untuk melakukan ini. = "0x" & DEC2HEX (A1,8) & amp; akan melakukan trik, tetapi itu mengubah bidang ke bidang teks, sehingga tidak dapat lagi dengan mudah digunakan dalam rumus. Metode lain adalah dengan menggunakan format khusus. Jika Anda menerapkan format khusus "0x" @ ke sel, maka nilai sel masih bisa digunakan dalam persamaan. Contoh:


╔═══╦════════════════╦════════════╦═════════════════════════════╦═══════════════╗
║   ║       A        ║     B      ║                             ║               ║
╠═══╬════════════════╬════════════╬═════════════════════════════╬═══════════════╣
║ 1 ║                ║ Value      ║ Corresponding Formula       ║ Number Format ║
║ 2 ║ Decimal        ║ 11162790   ║ 11162790                    ║ General       ║
║ 3 ║ Hex            ║ AA54A6     ║ =DEC2HEX(B2)                ║ General       ║
║ 4 ║ leading 0's    ║ 00AA54A6   ║ =DEC2HEX(B2,8)              ║ General       ║
║ 5 ║ Text 0x prefix ║ 0x00AA54A6 ║ =DEC2HEX(B2,8)              ║ "0x"@         ║
║ 6 ║ Text 0x prefix ║ 0x00AA54A6 ║ ="0x" & DEC2HEX(B2,8)       ║ General       ║
║ 7 ║ Use B5         ║ AA54A600   ║ =DEC2HEX(HEX2DEC(B5) * 256) ║ General       ║
║ 8 ║ Use B5         ║ 0xAA54A600 ║ =DEC2HEX(HEX2DEC(B5) * 256) ║ "0x"@         ║
║ 9 ║ Try to use B6  ║ #NUM!      ║ =DEC2HEX(HEX2DEC(B6) * 256) ║ General       ║
╚═══╩════════════════╩════════════╩═════════════════════════════╩═══════════════╝


Namun, angka besar dengan angka yang bervariasi masih sulit dibaca, jadi saya suka memasukkan koma ke dalam angka desimal dan "_" menjadi angka hex. Pertama, Anda perlu mendapatkan 16 bit bagian atas dan bawah. 16 bit atas dari angka 32-bit dapat diambil dengan = INT (A1 / 2 ^ 16). Membagi dengan 2 ^ 16 bertindak seperti pergeseran kanan 16 bit, dan INT menghilangkan sisa fraksional. MOD dapat digunakan untuk mendapatkan 16 bit lebih rendah dari nomor 32 atau 64-bit; = MOD (A1, 2 ^ 16). MOD secara efektif mendapatkan sisanya, yang merupakan 16 bit lebih rendah. Berikut adalah tabel yang menunjukkan tindakan ini.
╔═══╦═════════════╦═══════════════╦════════════════════════════════════╦═════════╗
║   ║      A      ║      B        ║                                    ║         ║
╠═══╬═════════════╬═══════════════╬════════════════════════════════════╬═════════╣
║ 1 ║             ║ Value         ║ Corresponding Formula              ║ Format  ║
║ 2 ║ Decimal     ║ 3,098,743,209 ║ 3098743209                         ║ #,##0   ║
║ 3 ║ Upper Bytes ║ B8B3          ║ =DEC2HEX(INT( B2/2^16 ), 4)        ║ General ║
║ 4 ║ Lower Bytes ║ 11A9          ║ =DEC2HEX(MOD( B2, 2^16 ))          ║ General ║
║ 5 ║ Full Number ║ 0xB8B3_11A9   ║ ="0x" & DEC2HEX(INT( B2/2^16 ), 4) ║ General ║
║   ║             ║               ║ & "_" & DEC2HEX(MOD(B2, 2^16), 4)  ║         ║
╚═══╩═════════════╩═══════════════╩════════════════════════════════════╩═════════╝


BTW, saya harus berterima kasih banyak https://ozh.github.io/ascii-tables/ . Saya menggunakan tautan itu untuk membuat tabel teks ASCII. Saya baru saja menyalin tabel dari spreadsheet excel saya ke bagian Input dan secara otomatis membuat tata letak teks unicode yang bagus.
OldEmbeddedGuy
sumber
16

Jika Anda ingin memformat sel sehingga Anda bisa mengetikkan angka desimal dan secara otomatis ditampilkan sebagai angka heksadesimal, maka itu tidak mungkin. Anda bisa memformat sel sebagai teks dan memasukkan angka heksadesimal secara langsung (tetapi perhatikan bahwa Excel tidak dapat menggunakannya untuk perhitungan), atau gunakan DEC2HEX() dan HEX2DEC() fungsi untuk mengkonversi antara basis 10 dan basis 16.

Indrek
sumber
1
Untuk referensi, ada juga DEC2BIN() yang mengubahnya menjadi biner. Untuk biner dengan lebar tetap, gunakan sesuatu seperti =TEXT(DEC2BIN(A1), "0000")
Tor Klingberg
1
Pada Excel 2013 yang diterjemahkan ke dalam bahasa Jerman, DEC2HEX dan HEX2DEC menghasilkan pesan kesalahan #NAME ?. Dengan Bantuan Office, saya dapat mengetahui bahwa fungsinya disebut DEZINHEX dan HEXINDEZ, resp.
Bernhard Hiller
Bagaimana cara memperpanjang = 0x1234AB hingga = 0x001234AB (saya perlu lebar tetap 8)?
Danijel
@Danijel Gunakan parameter kedua DEC2HEX.
Vincent G
7

Jika sel yang akan dikonversi adalah A1 menggunakan =DEC2HEX(A1).

pnuts
sumber
2
Anda mungkin ingin menambahkan "0x" ke nilai hex Anda. Menggunakan ="0x"&DEC2HEX(A1,4) untuk mendapatkan hasil yang terlihat seperti 0x1AF2.
User5910
4

Jika Anda perlu melakukan operasi matematika pada angka-angka yang dikonversi menjadi hex, pertama-tama ubahlah menjadi desimal, lakukan operasi, kemudian konversikan kembali ke hex.

Misalnya, sel A1 memiliki nomor hex, seperti yang akan dibuat dari rumus ini:

=DEC2HEX(17)

yang akan ditampilkan sebagai 11, dan sel A2 memiliki rumus:

=DEC2HEX(165)

yang akan ditampilkan sebagai A5, dan Anda ingin menambahkannya bersama-sama, maka rumus ini akan mendapatkan hasil yang diinginkan:

=DEC2HEX(HEX2DEC(A1)+HEX2DEC(A2))

yang akan ditampilkan sebagai B6

TestIt
sumber
1
=REPT("0",4-LEN(DEC2HEX(B3)))&DEC2HEX(B3)

Rumus REPT mengulangi "0" berdasarkan panjang string hex yang dihasilkan dengan mengubahnya dari desimal, dan panjang yang diinginkan dari string HEX. Dalam contoh ini saya ingin menghasilkan string HEX dengan panjang 4.

Anda kemudian menggabungkan nol terkemuka ke string HEX yang sebenarnya, sehingga menghasilkan nilai HEX dari panjang yang diinginkan.

Keuntungan:

  1. Mengatasi rumus dengan mudah ke lembar kerja lain. Dengan hanya dua referensi sel ke nilai desimal, B3, untuk ditugaskan kembali.
  2. Hasil rumus ini diperlakukan sebagai nilai HEX oleh Excel. Anda juga bisa mengawali "0x", tetapi saya tidak merasa perlu.

Catatan: Saya menggunakan ini ketika saya menyalin string HEX dan mereka disalin dengan panjang yang berbeda-beda. Saya pertama kali menghasilkan kolom nilai desimal dari nilai-nilai asli yang kemudian dapat saya jalankan melawan formula ini.

WSimpson
sumber
0

Ini adalah solusi yang saya temukan untuk memastikan saya bisa memformat angka hex ini ke dalam format HTML:

SWITCH(LEN(DEC2HEX(B6)),1,"000"&DEC2HEX(B6),2,"00"&DEC2HEX(B6),3,"0"&DEC2HEX(B6),4,DEC2HEX(B6))
Stephen Frick
sumber
2
Penjelasan tentang apa yang terjadi dalam kode Anda akan membuat jawabannya lebih berguna
WilliamKF