Excel 2003: Chuyển đổi chữ cái thành số
Tôi có thể viết công thức (sử dụng Excel 2003) như thế nào để chuyển đổi số điện thoại gồm chữ và ký tự thành giá trị số tương ứng?
Tôi có thể dễ dàng chuyển đổi một ký tự chữ cái thành giá trị số bằng cách sử dụng hàm SUBSTITUTE của Excel.
Ví dụ, hàm SUBSTITUTE có thể thay đổi tất cả các chữ cái S trong từ “business” thành số 7 tương ứng trên bàn phím điện thoại: bu7ine77 .
Nhưng làm sao tôi có thể làm điều đó với cả 26 chữ cái trong bảng chữ cái?
Không nhất thiết phải sử dụng công thức với hàm SUBSTITUTE – tôi chỉ dùng công thức đó vì nó dễ bắt đầu hơn.
Trả lời:
CHÀO,
Ở Anh chúng tôi không dùng cái này nhưng tôi cho rằng ở chỗ bạn bàn phím điện thoại cũng tương tự, ví dụ như hình bên dưới, nên A, B hoặc C sẽ trở thành 2, v.v. Dưới đây là một hàm do người dùng định nghĩa sẽ thực hiện việc đó. Nhấn ALT+F11 để mở trình soạn thảo VB, nhấp chuột phải vào 'ThisWorkbook' và chọn Chèn mô hình, sau đó dán đoạn mã bên dưới vào bên phải. Đóng trình soạn thảo VB.
Quay lại cuộc gọi về bảng tính với
=AlphaNum(A1)
Trong đó a1 là một ô có số Alpha này.
Hàm AlphaNum(rng As String) As String
Dim x As Long
Đối với x = 1 đến Len(rng)
Nếu UCase(Mid(rng, x, 1)) Like "[AC]" thì
rng = Replace(rng, Mid(rng, x, 1), 2)
ElseIf UCase(Mid(rng, x, 1)) Like "[DF]" Then
rng = Replace(rng, Mid(rng, x, 1), 3)
ElseIf UCase(Mid(rng, x, 1)) Like "[GI]" Then
rng = Replace(rng, Mid(rng, x, 1), 4)
ElseIf UCase(Mid(rng, x, 1)) Like "[JL]" Then
rng = Replace(rng, Mid(rng, x, 1), 5)
ElseIf UCase(Mid(rng, x, 1)) Like "[MO]" Then
rng = Replace(rng, Mid(rng, x, 1), 6)
ElseIf UCase(Mid(rng, x, 1)) Like "[PS]" Then
rng = Replace(rng, Mid(rng, x, 1), 7)
ElseIf UCase(Mid(rng, x, 1)) Like "[TV]" Then
rng = Replace(rng, Mid(rng, x, 1), 8)
ElseIf UCase(Mid(rng, x, 1)) Like "[WZ]" Then
rng = Replace(rng, Mid(rng, x, 1), 9)
Kết thúc nếu
Kế tiếp
AlphaNum = rng
Kết thúc hàm
| 1 | |
| 2 | ABC |
| 3 | DEF |
| 4 | GHI |
| 5 | JKL |
| 6 | MNO |
| 7 | PQRS |
| 8 | TUV |
| 9 | WXYZ |
| 0 |
Trả lời:
Mike đã làm trước tôi rồi, nhưng đây là phiên bản UDF của tôi:
Hàm AlphaPhone(str As String)
Dim i As Long
Đối với i = 1 Đến Len(str)
Chọn trường hợp UCase(Mid(str, i, 1))
Trường hợp "A" đến "C": Mid(str, i, 1) = 2
Trường hợp "D" đến "F": Mid(str, i, 1) = 3
Trường hợp "G" đến "I": Mid(str, i, 1) = 4
Trường hợp "J" đến "L": Mid(str, i, 1) = 5
Trường hợp "M" đến "O": Mid(str, i, 1) = 6
Trường hợp "P" đến "S": Mid(str, i, 1) = 7
Trường hợp "T" đến "V": Mid(str, i, 1) = 8
Trường hợp "W" đến "Z": Mid(str, i, 1) = 9
Kết thúc lựa chọn
Tiếp theo tôi
AlphaPhone = str
Kết thúc hàm
Các hướng dẫn tương tự được áp dụng: =AlphaPhone(A1)
Chúc mừng!
Giàu có
Comments
Post a Comment