จะฟอร์แมตเซลล์ Microsoft Excel 2007 เป็นเลขฐานสิบหกได้อย่างไร


27

ฉันต้องการจัดรูปแบบเซลล์ใน Microsoft Excel 2007 เป็นเลขฐานสิบหก แต่ฉันไม่พบวิธีการทำเช่นนี้

มีวิธีในตัวในการเปลี่ยนฐานจาก 10 เป็น 16 สำหรับเซลล์หรือไม่?

คำตอบ:


18

ดังที่กล่าวไว้ก่อนหน้าสูตร = DEC2HEX (A1) แปลงเป็นฐานสิบหกและ DEC2HEX (A1,8) แปลงเป็นฐานสิบหกด้วย 0 ส่วนนำหน้าเพื่อแสดงถึง 32 บิต ในขณะที่การเพิ่ม 0 นำหน้าทำให้ตัวเลขอ่านได้ง่ายขึ้นโดยเฉพาะอย่างยิ่งถ้าคุณใช้ฟอนต์พอยท์แบบเลขฐานสิบหกและเลขฐานสิบสามารถผสมกันได้เมื่อตัวเลขทั้งหมดในจำนวนนั้นเป็น 0-9 (เช่น 327701 = 50015)

การปรับปรุงคือการเพิ่มคำนำหน้า "0x" มี 2 ​​วิธีในการทำเช่นนี้ = "0x" & DEC2HEX (A1,8) จะทำการเล่นกล แต่จะเปลี่ยนฟิลด์เป็นฟิลด์ข้อความดังนั้นจึงไม่สามารถใช้ในสูตรได้ง่ายอีกต่อไป อีกวิธีคือใช้รูปแบบที่กำหนดเอง หากคุณใช้รูปแบบที่กำหนดเอง "0x" @ กับเซลล์ดังนั้นค่าของเซลล์ยังสามารถใช้ในสมการได้ ตัวอย่าง:

╔═══╦════════════════╦════════════╦═══════════════ ══════════════╦═══════════════╗
║║ A ║ B ║║║
╠═══╬════════════════╬════════════╬═══════════════ ══════════════╬═══════════════╣
║ 1 ║║ค่า║สูตรที่สอดคล้อง Format รูปแบบตัวเลข║
║ 2 ║ทศนิยม║ 11162790 ║ 11162790 ║ทั่วไป║
║ 3 ║ Hex ║ AA54A6 ║ = DEC2HEX (B2) ║ทั่วไป║
║ 4 ║นำหน้า 0 ของ║ 00AA54A6 ║ = DEC2HEX (B2, 8) ║ทั่วไป║
║ 5 ║ข้อความนำหน้า 0x ║ 0x00AA54A6 ║ = DEC2HEX (B2, 8) ║ "0x" @ ║
║ 6 ║คำนำหน้าข้อความ 0x ║ 0x00AA54A6 ║ = "0x" & DEC2HEX (B2,8) ║ทั่วไป║
║ 7 ║ใช้ B5 ║ AA54A600 ║ = DEC2HEX (HEX2DEC (B5) * 256) ║ทั่วไป║
║ 8 ║ใช้ B5 ║ 0xAA54A600 ║ = DEC2HEX (HEX2DEC (B5) * 256) ║ "0x" @ ║
║ 9 ║ลองใช้ B6 ║ #NUM! ║ = DEC2HEX (HEX2DEC (B6) * 256) ║ทั่วไป║
╚═══╩════════════════╩════════════╩═══════════════ ══════════════╩═══════════════╝


อย่างไรก็ตามตัวเลขขนาดใหญ่ที่มีตัวเลขที่แตกต่างกันยังคงอ่านได้ยากดังนั้นฉันต้องการใส่เครื่องหมายจุลภาคเป็นตัวเลขทศนิยมและ "_" เป็นตัวเลขฐานสิบหก ก่อนอื่นคุณต้องได้ 16 และสูงกว่าของจำนวนบิต 16 บิตด้านบนของหมายเลข 32 บิตสามารถดึงได้ด้วย = INT (A1 / 2 ^ 16) การหารด้วย 2 ^ 16 ทำหน้าที่เหมือนการเลื่อนขวาของ 16 บิตและ INT จะลบเศษที่เหลือ MOD สามารถใช้เพื่อรับ 16 บิตที่ต่ำกว่าของหมายเลข 32 หรือ 64 บิตใด ๆ = MOD (A1, 2 ^ 16) MOD ได้รับส่วนที่เหลืออย่างมีประสิทธิภาพซึ่งน้อยกว่า 16 บิต นี่คือตารางที่แสดงการกระทำนี้

╔═══╦═════════════╦═══════════════╦═══════════════ ═════════════════════╦═════════╗
║║ A ║ B ║║║
╠═══╬═════════════╬═══════════════╬═══════════════ ═════════════════════╬═════════╣
║ 1 ║║ค่า║สูตรที่สอดคล้อง║รูปแบบ║
║ 2 ║ทศนิยม║ 3,098,743,209 ║ 3098743209 ║ #, ## 0 ║
║ 3 ║ไบต์บน║ B8B3 ║ = DEC2HEX (INT (B2 / 2 ^ 16), 4) ║ทั่วไป║
║ 4 ║ Lower Bytes ║ 11A9 ║ = DEC2HEX (MOD (B2, 2 ^ 16)) ║ทั่วไป║
║ 5 ║ Full Number ║ 0xB8B3_11A9 ║ = "0x" & DEC2HEX (INT (B2 / 2 ^ 16), 4) ║ทั่วไป║
║║║║ & "_" & DEC2HEX (MOD (B2, 2 ^ 16), 4) ║║
╚═══╩═════════════╩═══════════════╩═══════════════ ═════════════════════╩═════════╝


BTW, ฉันมีให้ขอบคุณใหญ่เพื่อhttps://ozh.github.io/ascii-tables/ ฉันใช้ลิงก์นั้นเพื่อสร้างตารางข้อความ ASCII ฉันเพิ่งคัดลอกตารางจากสเปรดชีต excel ของฉันไปยังส่วนอินพุตและมันจะสร้างเค้าโครงข้อความ Unicode ที่ดีโดยอัตโนมัติ


16

หากคุณต้องการจัดรูปแบบเซลล์เพื่อให้คุณสามารถพิมพ์ตัวเลขทศนิยมและให้แสดงเป็นเลขฐานสิบหกโดยอัตโนมัตินั่นเป็นไปไม่ได้ คุณสามารถจัดรูปแบบเซลล์เป็นข้อความและป้อนตัวเลขฐานสิบหกโดยตรง (แต่โปรดทราบว่า Excel ไม่สามารถใช้สำหรับคำนวณ) หรือใช้DEC2HEX()และHEX2DEC()ฟังก์ชันเพื่อแปลงระหว่างฐาน 10 และฐาน 16


1
สำหรับการอ้างอิงนอกจากนี้ยังมีDEC2BIN()ที่แปลงเป็นเลขฐานสอง สำหรับไบนารีความกว้างคงที่ให้ใช้บางอย่างเช่น=TEXT(DEC2BIN(A1), "0000")
Tor Klingberg

1
บน Excel 2013 ที่แปลเป็นภาษาเยอรมัน DEC2HEX และ HEX2DEC ส่งผลให้เกิดข้อผิดพลาด #NAME? ด้วยความช่วยเหลือของ Office ฉันสามารถค้นหาว่าฟังก์ชันนั้นเรียกว่า DEZINHEX และ HEXINDEZ, resp
Bernhard Hiller

ฉันจะขยาย = 0x1234AB เป็น = 0x001234AB (ฉันต้องการความกว้างคงที่ 8) ได้อย่างไร
Danijel

@Danijel ใช้พารามิเตอร์ตัวที่สองของ DEC2HEX
Vincent G

7

ถ้าเซลล์จะถูกแปลงเป็นการใช้งานA1=DEC2HEX(A1)


2
คุณอาจต้องการเพิ่มนำหน้า "0x" ในค่าเลขฐานสิบหกของคุณ ใช้เพื่อให้ได้ผลที่มีลักษณะเหมือน="0x"&DEC2HEX(A1,4) 0x1AF2
5910

4

หากคุณต้องการดำเนินการทางคณิตศาสตร์กับตัวเลขที่แปลงเป็นเลขฐานสิบหกอันดับแรกให้แปลงเป็นทศนิยมดำเนินการแล้วแปลงกลับเป็นฐานสิบหก

ตัวอย่างเช่นถ้าเซลล์A1มีเลขฐานสิบหกเช่นจะสร้างจากสูตรนี้:

=DEC2HEX(17)

ซึ่งจะแสดงเป็น 11 และเซลล์A2มีสูตร:

=DEC2HEX(165)

ซึ่งจะแสดงเป็นA5และคุณต้องการเพิ่มเข้าด้วยกันจากนั้นสูตรนี้จะได้ผลลัพธ์ที่ต้องการ:

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

ซึ่งจะแสดงเป็น B6


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

สูตร REPT จะทำซ้ำ "0" ตามความยาวของสตริงเลขฐานสิบหกที่สร้างขึ้นโดยการแปลงจากทศนิยมและความยาวที่ต้องการของสตริง HEX ในตัวอย่างนี้ฉันต้องการสร้างสตริง HEX ที่มีความยาว 4

จากนั้นคุณเชื่อมต่อศูนย์นำหน้าเข้ากับสตริง HEX จริงดังนั้นจึงสร้างค่า HEX ของความยาวที่ต้องการ

ข้อดี:

  1. การจัดการสูตรไปยังแผ่นงานอื่นได้ง่าย มีเพียงสองเซลล์ที่อ้างอิงถึงค่าทศนิยม B3 เพื่อกำหนดใหม่
  2. ผลลัพธ์ของสูตรนี้ถือเป็นค่า HEX โดย Excel คุณสามารถเติมคำนำหน้า "0x" ได้ แต่ฉันไม่คิดว่าจำเป็น

หมายเหตุ: ฉันใช้สิ่งนี้เมื่อฉันคัดลอกสตริง HEX และพวกเขาได้รับการคัดลอกที่ความยาวแตกต่างกัน ฉันก่อนสร้างคอลัมน์ของค่าทศนิยมจากค่าเดิมที่ฉันสามารถเรียกใช้สูตรนี้กับ


0

นี่เป็นวิธีแก้ปัญหาที่ฉันพบเพื่อให้แน่ใจว่าฉันสามารถจัดรูปแบบเลขฐานสิบหกเหล่านี้ในรูปแบบ HTML:

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

2
คำอธิบายสิ่งที่เกิดขึ้นในรหัสของคุณจะทำให้คำตอบมีประโยชน์มากขึ้น
WilliamKF
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.