การเปลี่ยนตัวเลข 1, 2, 3, …0 ให้เป็น A, B, C, …J

การเปลี่ยนข้อความลักษณะนี้สามารถใช้สูตร Substitute มาช่วยได้ครับ แต่หากตัวที่ต้องการเปลี่ยนมีจำนวนมากใน Excel 2003 จะต้องพึ่งเซลล์ช่วยหลายเซลล์เนื่องจากสามารถซ้อนสูตรได้เพียง 7 ชั้น แต่หากเป็น Excel 2007 ขึ้นไป สามารถที่จะซ้อนสูตรได้ถึง 64 ชั้นจึงสามารถเขียนสูตรในเซลล์เดียวกรณีไม่เกิน 64 เงื่อนไข

ภาพประกอบ

ChangeNumToText
ภาพ 1 การเปลี่ยนตัวเลขให้เป็นตัวอักษร

ตัวอย่างการใช้สูตรใน Excel 2003

สมมุติค่าเป้าหมายเริ่มที่ A1

  1. ที่ B1 คีย์สูตรในลำดับที่ 1
    =SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(
    SUBSTITUTE(SUBSTITUTE(A1,0,"J"),1,"A"),2,"B"),3,"C"),4,"D"),
    5,"E"),6,"F"),7,"G")

    Enter
  2. ที่ C1 คีย์สูตรในลำดับที่ 2 เพื่อเปลี่ยนให้เป็นค่าที่ต้องการ
    =SUBSTITUTE(SUBSTITUTE(B1,8,"H"),9,"I")
    Enter

ตัวอย่างการใช้สูตรใน Excel 2007

ที่ B1 คีย์

=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(
SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(
A1,0,"J"),1,"A"),2,"B"),3,"C"),4,"D"),5,"E"),6,"F"),7,"G"),8,"H"),9,"I")

Enter

Smile สำหรับท่านที่คุ้นเคยกับการใช้งาน VBA สามารถเขียนฟังก์ชั่นในการเปลี่ยนค่าตามลักษณะสูตรด้านบนได้ดังนี้ครับ

Option Explicit 
Function ctext(r) As String 
    Dim i As Byte 
    For i = 1 To Len(r) 
        Select Case Mid(r, i, 1) 
            Case 1: Mid(r, i, 1) = "A" 
            Case 2: Mid(r, i, 1) = "B" 
            Case 3: Mid(r, i, 1) = "C" 
            Case 4: Mid(r, i, 1) = "D" 
            Case 5: Mid(r, i, 1) = "E" 
            Case 6: Mid(r, i, 1) = "F" 
            Case 7: Mid(r, i, 1) = "G" 
            Case 8: Mid(r, i, 1) = "H" 
            Case 9: Mid(r, i, 1) = "I" 
            Case 0: Mid(r, i, 1) = "J" 
        End Select 
    Next i 
    ctext = r 
End Function
Winking smile และหากมีเงื่อนไขว่าให้ลบค่าอักขระที่ไม่ใช่ Number ออกทั้งหมด ส่วนค่าที่เป็น Number ให้เปลี่ยนเป็นอักษรตามเงื่อนไขด้านบน สามารถใช้ Code ตามด้านล่างได้ครับ
Function cntt(r) As String 
    Dim i As Byte 
    Dim b As Variant 
    b = Array("J", "A", "B", "C", "D", "E", "F", "G", "H","I") 
    For i = 1 To Len(r) 
        On Error Resume Next 
        cntt = cntt & b(Mid(r, i, 1)) 
    Next i 
End Function

Revised: January 28, 2017 at 17:18

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Scroll to Top