ฉันต้องการจัดรูปแบบเซลล์ใน Microsoft Excel 2007 เป็นเลขฐานสิบหก แต่ฉันไม่พบวิธีการทำเช่นนี้
มีวิธีในตัวในการเปลี่ยนฐานจาก 10 เป็น 16 สำหรับเซลล์หรือไม่?
ฉันต้องการจัดรูปแบบเซลล์ใน Microsoft Excel 2007 เป็นเลขฐานสิบหก แต่ฉันไม่พบวิธีการทำเช่นนี้
มีวิธีในตัวในการเปลี่ยนฐานจาก 10 เป็น 16 สำหรับเซลล์หรือไม่?
คำตอบ:
ดังที่กล่าวไว้ก่อนหน้าสูตร = 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) ║ทั่วไป║ ╚═══╩════════════════╩════════════╩═══════════════ ══════════════╩═══════════════╝
╔═══╦═════════════╦═══════════════╦═══════════════ ═════════════════════╦═════════╗ ║║ 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) ║║ ╚═══╩═════════════╩═══════════════╩═══════════════ ═════════════════════╩═════════╝
หากคุณต้องการจัดรูปแบบเซลล์เพื่อให้คุณสามารถพิมพ์ตัวเลขทศนิยมและให้แสดงเป็นเลขฐานสิบหกโดยอัตโนมัตินั่นเป็นไปไม่ได้ คุณสามารถจัดรูปแบบเซลล์เป็นข้อความและป้อนตัวเลขฐานสิบหกโดยตรง (แต่โปรดทราบว่า Excel ไม่สามารถใช้สำหรับคำนวณ) หรือใช้DEC2HEX()
และHEX2DEC()
ฟังก์ชันเพื่อแปลงระหว่างฐาน 10 และฐาน 16
ถ้าเซลล์จะถูกแปลงเป็นการใช้งานA1
=DEC2HEX(A1)
="0x"&DEC2HEX(A1,4)
0x1AF2
หากคุณต้องการดำเนินการทางคณิตศาสตร์กับตัวเลขที่แปลงเป็นเลขฐานสิบหกอันดับแรกให้แปลงเป็นทศนิยมดำเนินการแล้วแปลงกลับเป็นฐานสิบหก
ตัวอย่างเช่นถ้าเซลล์A1
มีเลขฐานสิบหกเช่นจะสร้างจากสูตรนี้:
=DEC2HEX(17)
ซึ่งจะแสดงเป็น 11 และเซลล์A2
มีสูตร:
=DEC2HEX(165)
ซึ่งจะแสดงเป็นA5
และคุณต้องการเพิ่มเข้าด้วยกันจากนั้นสูตรนี้จะได้ผลลัพธ์ที่ต้องการ:
=DEC2HEX(HEX2DEC(A1)+HEX2DEC(A2))
ซึ่งจะแสดงเป็น B6
=REPT("0",4-LEN(DEC2HEX(B3)))&DEC2HEX(B3)
สูตร REPT จะทำซ้ำ "0" ตามความยาวของสตริงเลขฐานสิบหกที่สร้างขึ้นโดยการแปลงจากทศนิยมและความยาวที่ต้องการของสตริง HEX ในตัวอย่างนี้ฉันต้องการสร้างสตริง HEX ที่มีความยาว 4
จากนั้นคุณเชื่อมต่อศูนย์นำหน้าเข้ากับสตริง HEX จริงดังนั้นจึงสร้างค่า HEX ของความยาวที่ต้องการ
ข้อดี:
หมายเหตุ: ฉันใช้สิ่งนี้เมื่อฉันคัดลอกสตริง HEX และพวกเขาได้รับการคัดลอกที่ความยาวแตกต่างกัน ฉันก่อนสร้างคอลัมน์ของค่าทศนิยมจากค่าเดิมที่ฉันสามารถเรียกใช้สูตรนี้กับ
นี่เป็นวิธีแก้ปัญหาที่ฉันพบเพื่อให้แน่ใจว่าฉันสามารถจัดรูปแบบเลขฐานสิบหกเหล่านี้ในรูปแบบ HTML:
SWITCH(LEN(DEC2HEX(B6)),1,"000"&DEC2HEX(B6),2,"00"&DEC2HEX(B6),3,"0"&DEC2HEX(B6),4,DEC2HEX(B6))
DEC2BIN()
ที่แปลงเป็นเลขฐานสอง สำหรับไบนารีความกว้างคงที่ให้ใช้บางอย่างเช่น=TEXT(DEC2BIN(A1), "0000")