Làm cách nào để định dạng một ô Microsoft Excel 2007 theo hệ thập lục phân?


27

Tôi muốn định dạng một ô trong Microsoft Excel 2007 ở dạng thập lục phân nhưng không tìm thấy cách thực hiện việc này.

Có cách tích hợp nào để thay đổi cơ sở từ 10 thành 16 cho một ô không?

Câu trả lời:


18

Như đã đề cập trước đó, công thức = DEC2HEX (A1) chuyển đổi thành hex và DEC2HEX (A1,8) chuyển đổi thành hex với tiền tố 0 để biểu thị 32 bit. Trong khi thêm số 0 đứng đầu làm cho các số dễ đọc hơn, đặc biệt nếu bạn sử dụng phông chữ điểm cố định, các phiên bản hex và thập phân có thể bị lẫn lộn khi tất cả các chữ số trong số xảy ra là 0-9 (ví dụ 327701 = 50015).

Một cải tiến là thêm tiền tố "0x". Có 2 cách để làm điều này. = "0x" & DEC2HEX (A1,8) sẽ thực hiện thủ thuật, nhưng nó thay đổi trường thành trường văn bản, do đó, nó không còn có thể dễ dàng được sử dụng trong các công thức. Một phương pháp khác là sử dụng một định dạng tùy chỉnh. Nếu bạn áp dụng định dạng tùy chỉnh "0x" @ cho ô, thì giá trị của ô vẫn có thể được sử dụng trong một phương trình. Ví dụ:

╔═══╦════════════════╦════════════╦═══════════════ ══════════════╦═══════════════╗
║ A ║ B ║ ║
╠═══╬════════════════╬════════════╬═══════════════ ══════════════╬═══════════════╣
1 ║ Giá trị Formula Công thức tương ứng Format Định dạng số
2 Số thập phân ║ 11162790 11162790 ║ Chung
3 ║ Hex AA54A6 = DEC2HEX (B2) ║ Chung
4 ║ dẫn đầu 0 ║ 00AA54A6 = DEC2HEX (B2,8) Chung
5 ║ Văn bản tiền tố 0x 0x00AA54A6 = DEC2HEX (B2,8) "0x" @
6 ║ Văn bản tiền tố 0x 0x00AA54A6 = "0x" & DEC2HEX (B2,8) Chung
7 Sử dụng B5 AA54A600 = DEC2HEX (HEX2DEC (B5) * 256) Chung
8 ║ Sử dụng B5 0xAA54A600 = DEC2HEX (HEX2DEC (B5) * 256) "0x" @
9 ║ Hãy thử sử dụng B6 #NUM! = DEC2HEX (HEX2DEC (B6) * 256) ║ Chung
╚═══╩════════════════╩════════════╩═══════════════ ══════════════╩═══════════════╝


Tuy nhiên, số lớn với các chữ số khác nhau vẫn có thể khó đọc, vì vậy tôi muốn đặt dấu phẩy thành số thập phân và "_" s thành số hex. Đầu tiên bạn cần lấy 16 bit trên và dưới của số. 16 bit trên của số 32 bit có thể được truy xuất bằng = INT (A1 / 2 ^ 16). Chia cho 2 ^ 16 hoạt động giống như một sự dịch chuyển phải 16 bit và INT loại bỏ phần còn lại. MOD có thể được sử dụng để lấy 16 bit thấp hơn của bất kỳ số 32 hoặc 64 bit nào; = MOD (A1, 2 ^ 16). MOD có hiệu quả lấy lại phần còn lại, đó là 16 bit thấp hơn. Đây là một bảng cho thấy điều này trong hành động.

╔═══╦═════════════╦═══════════════╦═══════════════ ═════════════════════╦═════════╗
║ A ║ B ║ ║
╠═══╬═════════════╬═══════════════╬═══════════════ ═════════════════════╬═════════╣
1 ║ Giá trị Formula Công thức tương ứng ║ Định dạng
2 ║ Số thập phân ║ 3.098,743,209 3098743209 #, ## 0
3 By Số byte trên B8B3 = DEC2HEX (INT (B2 / 2 ^ 16), 4) Chung
4 By Số byte thấp hơn ║ 11A9 = DEC2HEX (MOD (B2, 2 ^ 16)) Chung
5 Số đầy đủ ║ 0xB8B3_11A9 = "0x" & DEC2HEX (INT (B2 / 2 ^ 16), 4) Chung
║ ║ ║ & "_" & DEC2HEX (MOD (B2, 2 ^ 16), 4)
╚═══╩═════════════╩═══════════════╩═══════════════ ═════════════════════╩═════════╝


BTW, tôi phải cảm ơn rất nhiều về https://ozh.github.io/ascii-tables/ . Tôi đã sử dụng liên kết đó để tạo các bảng văn bản ASCII. Tôi vừa sao chép bảng từ bảng tính excel của mình vào phần Đầu vào và nó tự động tạo bố cục văn bản unicode đẹp.


16

Nếu bạn muốn định dạng một ô để bạn có thể nhập số thập phân và tự động hiển thị nó dưới dạng số thập lục phân, thì điều đó là không thể. Bạn có thể định dạng ô dưới dạng văn bản và nhập trực tiếp các số thập lục phân (nhưng lưu ý rằng Excel không thể sử dụng các số đó để tính toán) hoặc sử dụng các hàm DEC2HEX()HEX2DEC()để chuyển đổi giữa cơ sở 10 và cơ sở 16.


1
Để tham khảo, cũng DEC2BIN()có chuyển đổi thành nhị phân. Đối với nhị phân có chiều rộng cố định, hãy sử dụng một cái gì đó như=TEXT(DEC2BIN(A1), "0000")
Tor Klingberg

1
Trên Excel 2013 được bản địa hóa của Đức, DEC2HEX và HEX2DEC dẫn đến thông báo lỗi #NAME?. Với Trợ giúp Office, tôi có thể tìm ra rằng các hàm được gọi là DEZINHEX và HEXINDEZ, resp.
Bernhard Hiller

Làm cách nào để tôi mở rộng = 0x1234AB thành = 0x001234AB (Tôi cần chiều rộng cố định là 8)?
Danijel

@Danijel Sử dụng tham số thứ hai của DEC2HEX.
Vincent G

7

Nếu ô được chuyển đổi là A1sử dụng =DEC2HEX(A1).


2
Bạn có thể muốn thêm "0x" hàng đầu vào giá trị hex của mình. Sử dụng ="0x"&DEC2HEX(A1,4)để có được một kết quả trông giống như 0x1AF2.
Người dùng5910

4

Nếu bạn cần thực hiện các phép toán trên các số được chuyển đổi thành hex, trước tiên hãy chuyển đổi chúng thành số thập phân, thực hiện thao tác, sau đó chuyển đổi lại thành hex.

Ví dụ: nếu ô A1có số hex, chẳng hạn như sẽ được tạo từ công thức này:

=DEC2HEX(17)

sẽ được hiển thị là 11 và ô A2có công thức:

=DEC2HEX(165)

sẽ được hiển thị dưới dạng A5và bạn muốn thêm chúng lại với nhau, sau đó công thức này sẽ nhận được kết quả mong muốn:

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

sẽ được hiển thị dưới dạng B6


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

Công thức REPT lặp lại "0" dựa trên độ dài của chuỗi hex được tạo bằng cách chuyển đổi nó từ số thập phân và độ dài mong muốn của chuỗi HEX. Trong ví dụ này tôi đang tìm cách tạo các chuỗi HEX có độ dài 4.

Sau đó, bạn nối các số 0 đứng đầu với chuỗi HEX thực tế, từ đó tạo ra giá trị HEX có độ dài mong muốn.

Ưu điểm:

  1. Dễ dàng đối phó công thức với bảng tính khác. Chỉ với hai tham chiếu ô đến một giá trị thập phân, B3, để gán lại.
  2. Kết quả của công thức này được coi là giá trị HEX bằng Excel. Bạn cũng có thể đặt tiền tố là "0x", nhưng tôi không thấy cần thiết.

Lưu ý: Tôi sử dụng điều này khi tôi sao chép chuỗi HEX và chúng được sao chép ở các độ dài khác nhau. Trước tiên tôi tạo một cột các giá trị thập phân từ các giá trị ban đầu mà sau đó tôi có thể chạy công thức này.


0

Đây là một giải pháp tôi tìm thấy để đảm bảo rằng tôi có thể định dạng các số hex này thành định dạng HTML:

SWITCH(LEN(DEC2HEX(B6)),1,"000"&DEC2HEX(B6),2,"00"&DEC2HEX(B6),3,"0"&DEC2HEX(B6),4,DEC2HEX(B6))

2
Một lời giải thích về những gì đang diễn ra trong mã của bạn sẽ làm cho câu trả lời hữu ích hơn.
WilliamKF
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.