[ Log On ]
วิธีแปลงค่าไปมาระหว่าง A-Z กับ 1-26 ใน Excel

พอดีว่ามีเพื่อนถามมาว่าจะหาค่า "ตัวเลข" ของ A-Z เช่น A = 1, Z = 26 ใน Excel แบบง่ายๆ ได้ยังไง ไหนๆ ตอบเพื่อนมันไปแล้วก็คิดว่าน่าจะเอามาแบ่งปัน เผื่อจะเป็นประโยชน์กับใครบ้าง

ใน Microsoft Excel มันจะมีฟังก์ชั่น CODE() อยู่ครับ เอาไว้ใช้หาค่า ASCII จากตัวอักษรใน cell นั้นๆ รองรับตั้งแต่ Excel 2000 เป็นต้นมาครับ

การใช้งาน CODE()

เหมือนใส่สูตรธรรมดาๆ ทั่วไปเลยครับ โดยใช้คำสั่งดังนี้

	=CODE(UPPER({cell ที่เราต้องการแปลง}))-64

คำอธิบาย

อธิบายกระบวนการทำงานของสูตรนี้ได้ดังนี้ครับ

  1. UPPER() เริ่มจากการแปลงตัวพิมพ์เล็กให้เป็นพิมพ์ใหญ่ก่อน แต่ถ้าเป็นพิมพ์ใหญ่อยู่แล้ว อันนี้ก็ไม่มีผลอะไร สาเหตุที่ต้องทำเพราะใน ASCII นั้น a กับ A จะมีความต่างกันครับ
  2. CODE() แปลงค่าตัวพิมพ์ใหญ่ที่ได้จาก (1) เป็น ASCII
  3. นำค่า ASCII ที่ได้จาก (2) มาลบ 64 เพราะตัวอักษร A ใน ASCII เริ่มต้นที่ 65

 

กลับกันบ้างได้มั้ย?

ทำได้แน่นอนอยู่แล้วครับ การแปลงค่า ASCII กลับไปเป็นตัวอักษร จะใช้ CHAR() แทน CODE() ครับ

 

การใช้งาน CHAR()

เช่นเดียวกับ CODE คือใส่สูตรตามปกติดังนี้

	=CHAR({cell ที่เราต้องการแปลง}+64)

คำอธิบาย

CHAR() เป็นฟังก์ชั่นที่ใช้ในการแปลง ASCII กลับเป็นตัวอักษรครับ ตามโจทย์ในที่นี้ ค่าที่รับมาจาก Cell จะต้องเป็นเลข 1-26 เท่านั้น เพราะเราต้องการหาค่า A-Z ไม่ได้หาครอบจักรวาลทั้งหมด แล้วเราจะต้องทำการบวก 64 กลับไป เป็นการทำย้อนกลับกับ CODE() ที่เราลบไป 64 นั่นเองครับ

หวังว่าจะพอช่วยอะไรได้บ้างนะครับ :)